编写JUnit Test Case,实现参数化测试 第一题:判断是否是素数,参考数据集是 {true,1},{true,7},给可以给出其他数据测试。
时间: 2024-05-14 17:19:44 浏览: 64
我了解了您的问题,并且为您提供答案:
JUnit是一个Java的测试框架,它可以帮助我们编写测试用例。在进行参数化测试时,我们可以使用JUnit的@Parameter注释来指定不同的测试参数,从而检查测试的各种情况。
下面是一个判断是否是素数的JUnit测试用例,其中包括了参考数据集和其他测试数据:
```
import static org.junit.Assert.assertEquals;
import java.util.Arrays;
import java.util.Collection;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
@RunWith(Parameterized.class)
public class PrimeNumberCheckerTest {
private Integer inputNumber;
private Boolean expectedResult;
private PrimeNumberChecker primeNumberChecker;
@Before
public void initialize() {
primeNumberChecker = new PrimeNumberChecker();
}
public PrimeNumberCheckerTest(Integer inputNumber,
Boolean expectedResult) {
this.inputNumber = inputNumber;
this.expectedResult = expectedResult;
}
@Parameterized.Parameters
public static Collection inputNumbers() {
return Arrays.asList(new Object[][] {
{ true, 1 },
{ true, 7 },
{ false, 4 },
{ false, 6 },
{ true, 17 }
});
}
@Test
public void testPrimeNumberChecker() {
System.out.println("inputNumber: " + inputNumber + ",
expectedResult: " + expectedResult);
assertEquals(expectedResult, primeNumberChecker.validate(inputNumber));
}
}
```
在此测试用例中,我们首先定义了输入参数和期望的结果。然后,我们使用@Before注释来初始化PrimeNumberChecker类的实例。接下来,我们使用@Parameters注释来指定测试所需的输入参数和期望结果。最后,我们使用@Test注释来定义测试用例。
在这个测试用例中,我们测试了五种不同的情况:1是否是素数,7是否是素数,4是否是素数,6是否是素数以及17是否是素数。我们使用assertEquals方法来比较实际结果和期望结果是否相等。
请注意,这个测试用例只是一个示例,实际应用可能需要更多的测试用例和更多的测试数据。
阅读全文