| Аннотация | Описание |
|---|---|
| @Test | Аннотация, указывющая, что метод является тестом. |
| @Displayname("Название теста") | Отображает пользовательское имя теста при запуске. |
| @RepeatedTest(количество_запусков_теста) | Выполнить тест n раз. |
Пример:
@Test
@Displayname("Проверка сложения чисел")
void myNewTest() {
Assertions.assertEquals(5, 5); // Сравнивает значения на равенство
Assertions.assertEquals(345, Math.addExact(300, 45));
}| Аннотация | Описание |
|---|---|
| @Timeout(value = количество, unit = TimeUnit.тип_единиц_измерения) | Устанавливает время выполнения метода.Если метод будет выполняться дольше заданного времени, то тест провалится. |
Пример:
@Test
@Timeout(value = 1, unit = TimeUnit.SECONDS)
public void test1() {
long currentTime = System.currentTimeMillis();
while (System.currentTimeMillis() < currentTime + 10000) {
}
}
// Тест провалится, т.к. установлено времени на выполнение - 1 секунда, а метод выполняется 10 секунд| Аннотация | Описание |
|---|---|
| @ParameterizedTest | Тест с параметрами, требует аннотацию, предоставляющую исходные данные. |
| @ValueSource(тип = {значения через запятую}) | Передать значения переменных (int, double, string и т.д.) . |
Пример:
@ParameterizedTest
@ValueSource(ints = {4, 621, 265})
public void isPrimeForNotPrimes(int number) {
Assert.assertFalse(numberWorker.isPrime(number));
}| Аннотация | Описание |
|---|---|
| @MethodSource("Имя метода, генерирующего значения") | Параметры предоставляются методом, который их генерирует. |
Пример:
public static Stream<Arguments> sourceProvider() {
return Stream.of(
arguments(1, "один"),
arguments(2, "два")
);
}
@ParameterizedTest
@MethodSource("sourceProvider")
@DisplayName("test: проверка sourceProvider")
public void test(int num, String str) {
Assertions.assertTrue(str.length() > 0);
Assertions.assertTrue(num == 1 || num == 2);
}| Аннотация | Описание |
|---|---|
| @CsvFileSource(resources = "/data.csv") | Параметры считываются из .csv файла. |
Пример:
@ParameterizedTest
@CsvFileSource(resources = "/data.csv")
public void checkSumDigit(int number, int sum) {
Assert.assertEquals(sum, numberWorker.digitSum(number), 1e-9);
}@BeforeEach:
- Используется когда нужно выполнить определенные действия перед каждым тестовым методом.
- Пример использования: инициализация объектов, открытие ресурсов (например, подключение к базе данных), загрузка данных и другие подготовительные действия.
@BeforeAll:
- Используется когда нужно выполнить действия перед началом выполнения всех тестов в классе.
- Пример использования: настройка общих ресурсов, которые могут быть разделяемыми между всеми тестами в классе.
@AfterEach:
- Используется когда вам нужно выполнить определенные действия после каждого тестового метода.
- Пример использования: закрытие ресурсов, освобождение памяти, очистка данных после каждого теста.
@AfterAll:
- Используется когда вам нужно выполнить действия после выполнения всех тестов в классе.
- Пример использования: закрытие общих ресурсов, завершение подключения к базе данных и другие завершающие действия.
MockMvc - симулирует запросы и получает ответы от контроллеров не запуская веб-сервер.
Для использования MockMvc на уровне класса нужно использовать конфигурационную аннотацию @WebMvcTest.
Позволяет Spring создать экземпляр MockMvc и связать его с контроллерами.
@RunWith(SpringRunner.class)
@WebMvcTest
public class WebLayerTest {
@Autowired
private MockMvc mockMvc;
}Синтаксис: perform(тип_http_запроса(эндпоинт))
GET-запрос:
mockMvc.perform(get("/health/check"));GET
mockMvc.perform(get("/health/check"));