Conteúdo do Curso
Spring Boot Backend
Spring Boot Backend
Modular Testing With JUnit
When we reviewed the application's architecture, we skipped over the test
directory, which was intended for tests. Now, we will take a closer look at how to write these tests and what is required for doing so.
Basic Concepts
For testing, we will be using the JUnit
library. This is one of the most popular frameworks for unit testing in Java applications. It is easy to use and integrate, especially with Spring Boot.
To use JUnit
, we need to add a dependency to our pom.xml
file.
Now we are ready to write our first test in our application!
Writing Test
Now we will write a test that is not directly related to our application but will help you understand the concept of testing.
In Spring Boot, tests are typically located in the src/test/java
directory, which is automatically created when initializing the project. Here, we can create our test.
Let’s create a class named SimpleTest
, and within it, we can create testing method called testSum()
.
SimpleTest
public class SimpleTest { // This method tests the sum of two integers. @Test public void testSum() { // Perform the sum of 2 and 2 and store the result in a variable. int result = 2 + 2; // Assert that the result is equal to 4. assertEquals(4, result); } }
The @Test
annotation in JUnit
indicates that the method is a test and should be executed during the testing process.
Inside the test, an assertion is used: assertEquals(4, result)
, which checks that the calculation result matches the expected value. If the result
does not meet expectations, the test will be considered unsuccessful, signaling a problem in the program's logic.
By running our test, we can see that it has passed successfully!
Rules for Writing Tests
In unit tests, it is important to follow a clear and structured naming system for classes and methods so that tests are readable and easy to maintain.
Class Naming
The name of the class being tested should include the suffix Test
. For example, if we are testing a class named BookController
, the corresponding test class would be named BookControllerTest
.
Method Naming
Test method names should be descriptive, allowing anyone reading them to understand what is being tested. A good naming scheme includes: (What is being tested) _ (Under what conditions) _ (Expected result).
In this test name, testCreateUser
indicates that the process of creating a user is being tested. The next part, whenInputIsValid
, describes the conditions under which the test is conducted — specifically, when the user input is valid. Finally, shouldReturnCreatedUser
specifies the expected outcome — the method should return the created user.
Summary
Unit testing using JUnit
allows for the verification of the correctness of individual parts of an application in isolation, ensuring high code quality and system stability when changes are made.
JUnit
provides convenient tools for writing, executing, and organizing tests, making it the primary choice for testing Java applications, including Spring Boot.
Obrigado pelo seu feedback!