Добавил:
ПОИТ 2016-2020 Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Пацей 4 сем / Лекции / СТПI_5_Unit_тестирование

.pdf
Скачиваний:
67
Добавлен:
29.04.2018
Размер:
3.44 Mб
Скачать

Тесты (tests) – методы, непосредственно выполняющие проверку («тестовые методы»).

@Test

void testExample1()

{

}

public — всё c Junit 5

Тесты, проверяющие исключения

@Test(expected=ArithmeticException.class) voidtestExample2()

{

}

Тесты с таймаутом

тестовый метод должен выполнился за некоторое время

@Test(timeout=2000) public void testExample3()

{

}

Игнорирование тестового метода

@Ignore() тестовый метод выполнять не нужно

@Test

void testExample4()

{

}

Параметризованные тесты

@RunWith(value = Parameterized.class)

class TestData{

запуск будет параметризованным

@Parameters

Данные для параметризации

}

Параметризованные тесты JUnit 5

@ParameterizedTest

@ValueSource(strings = { "Hello", "World" }) void testWithStringParameter(String argument) {

 

assertNotNull(argument);

 

данные примитивных

}

типов: int, long, double, String.

@CsvSource({ "foo, 1", "bar, 2", "'baz, qux', 3" }) @EnumSource(value = TimeUnit.class, names = { "DAYS", "HOURS" })

Наборов тестов

@RunWith(value=Suite.class) @Suite.SuiteClasses(value={testExample1.class,

 

testExample4.class})

class _testRunner {

Указание набора

}

Выполнение

набора

 

 

1) Тесты выполняются в том порядке, в каком

 

перечислены

2) В JUnit 4 НЕЛЬЗЯ включить в набор отдельные тестовые методы, как в JUnit 3.

Проверки в JUnit

Проверки (assertions) – специальные методы, выполнение которых может закончиться успешно (проверка прошла) или не успешно (проверка не прошла).

1) Остановка теста

@Test

voidtestExample1()

{

fail(); fail("Stop!");

}

проверка, которая всегда заканчивается неудачей.

Метод генерирует ошибку выполнения теста (завершает тест ошибкой) с выводом сообщения или без вывода.

используется как «заглушка» для тестов, логика которых ещё не реализована

2) Сравнение

assertEquals() сравнивает два значения

assertEquals(4.0, 2.0*2.0, 0.0001);

assertEquals(4, 2*2);

Проверка считается пройденной, если значения равны

3) Истинность и ложность

assertTrue() проверяет, является ли переданный аргумент логически равным true.

boolean some_bool_var = 3<5; assertTrue(some_bool_var); assertTrue(2*2 == 4);

assertTrue( 2*2 == 4,"Math error!");

assertFalse() проверяет, является ли переданный аргумент логически равным false.

boolean some_bool_var = 3<5; assertFalse(some_bool_var); assertFalse(2 * 3 == 4); assertFalse(2 * 3 == 4,"Math OK!");

}

4) Отсутствие и наличие

assertNull() проверяет, является ли переданный аргумент логически равным null

testobj = null; assertNull(testobj);

assertNull( testobj, "Self-created obj?");

assertNotNull() проверяет, является ли переданный аргумент логически НЕ равным null.

assertNotNull(testobj);

assertNotNull( testobj,"Creation failed!?");

5) Сравнение объектов

assertSame() проверяет, ссылаются ли переданные аргументы на один и тот же объект

assertSame(obj1, obj2);

assertSame (obj1, obj2, "Different!");

assertNotSame() проверяет, ссылаются ли переданные аргументы на разные объекты.

assertNotSame(obj1, obj2); assertNotSame(obj1, obj2, "The same!" );

6) Сравнение массивов

assertArrayEquals() проверяет, являются ли массивы идентичными.

assertArrayEquals(int_arr1, int_arr2); assertArrayEquals( sa1, sa2,"NO!");

JUnit 5

JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage

7) Сравнение группы, строк

@Test

@DisplayName("Check all assert") void GroupTest(){

Assertions.assertAll("all assertion",

() -> assertThat("JUNIT", startsWith("J")), () -> assertThat("JUNIT", endsWith("T")));

Assertions.assertLinesMatch(List.of("1","2"),List.of("1","2"));

}}

Соседние файлы в папке Лекции