Работа вам нужна срочно. Не волнуйтесь, уложимся!
- 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);
}
}
Для интеграции этого обработчика событий с тестами используйте следующий код: