Работа вам нужна срочно. Не волнуйтесь, уложимся!
Заполните, пожалуйста, данные для автора:
- 22423 авторов готовы помочь тебе.
- 2402 онлайн
Тесты в JUnit группируются по различным признакам. Для выполнения этого задания, вам необходимо выявить несколько тестовых случаев из предыдущих лабораторных работ и выполнить их отдельно друг от друга.
Пример кода для создания тестов в JUnit:
java import org.junit.Test; import static org.junit.Assert.*; public class DataSetTest { @Test public void testSmallDataSet() { int[] data = {1, 2, 3}; assertEquals(6, sum(data)); // пример теста для малого набора данных } @Test public void testMediumDataSet() { int[] data = {10, 20, 30, 40}; assertEquals(100, sum(data)); // пример теста для среднего набора данных } @Test public void testLargeDataSet() { int[] data = {100, 200, 300, 400, 500}; assertEquals(1500, sum(data)); // пример теста для большого набора данных } public int sum(int[] data) { int sum = 0; for (int i : data) { sum += i; } return sum; } }
Параметризованные тесты позволяют запустить один и тот же тест с разными входными значениями. В JUnit это делается с помощью аннотации `@RunWith` и предоставлением нескольких наборов данных с помощью `@Parameters`.
Пример параметризованного теста:
java import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import java.util.Arrays; import java.util.Collection; import static org.junit.Assert.*; @RunWith(Parameterized.class) public class ParameterizedTest { private int input; private int expected; public ParameterizedTest(int input, int expected) { this.input = input; this.expected = expected; } @Parameterized.Parameters public static Collection data() { return Arrays.asList(new Object[][]{ {1, 2}, {2, 4}, {3, 6}, {4, 8} }); } @Test public void testMultiplyByTwo() { assertEquals(expected, multiplyByTwo(input)); } public int multiplyByTwo(int number) { return number * 2; } }
Junit поддерживает интеграцию с различными механизмами документации через обработчики событий, которые можно установить в момент выполнения тестов.
Пример простейшего класса обработки событий:
java import org.junit.runner.notification.RunListener; import org.junit.runner.Description; import org.junit.runner.notification.Failure; public class ScholarshipRunListener extends RunListener { @Override public void testStarted(Description description) { System.out.println("Начато тестирование: " + description.getMethodName()); } @Override public void testFinished(Description description) { System.out.println("Тест завершен: " + description.getMethodName()); } @Override public testFailure(Failure failure) { System.out.println("Ошибка при выполнении: " + failure.getDescription().getMethodName()); } }
java import org.junit.runner.JUnitCore; public class RunTests { public static void main(String[] args) { JUnitCore runner = new JUnitCore(); runner.addListener(new ScholarshipRunListener()); runner.run(DataSetTest.class, ParameterizedTest.class); } }
Для интеграции этого обработчика событий с тестами используйте следующий код: