1 @Ignore,表示忽略测试该方法
如:
2 @Time,限制某个方法要在多少ms内执行完毕测试
3 @Suite ,就是将多个单元测试一起运行
4 @ Parameters
junit可以接收一 系列参数 进行测试 ,例子 如下 :
这个是一个检查输入的数是否素数的方法
下面是测试类
可以看到,限制 还是很大的 ,很麻烦
如:
@Ignore("Not Ready to Run")
@Test
public void divisionWithException() {
System.out.println("Method is not ready yet");
}
2 @Time,限制某个方法要在多少ms内执行完毕测试
@Test(timeout = 1000)
public void infinity() {
while (true);
}
3 @Suite ,就是将多个单元测试一起运行
@RunWith(Suite.class)
@Suite.SuiteClasses({
JunitTest1.class,
JunitTest2.class
})
public class JunitTest5 {
}
4 @ Parameters
junit可以接收一 系列参数 进行测试 ,例子 如下 :
这个是一个检查输入的数是否素数的方法
public class PrimeNumberChecker {
public Boolean validate(final Integer primeNumber) {
for (int i = 2; i < (primeNumber / 2); i++) {
if (primeNumber % i == 0) {
return false;
}
}
return true;
}
}
下面是测试类
@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 primeNumbers() {
return Arrays.asList(new Object[][] {
{ 2, true },
{ 6, false },
{ 19, true },
{ 22, false },
{ 23, true }
});
}
// This test will run 4 times since we have 5 parameters defined
@Test
public void testPrimeNumberChecker() {
System.out.println("Parameterized Number is : " + inputNumber);
assertEquals(expectedResult,
primeNumberChecker.validate(inputNumber));
}
}
可以看到,限制 还是很大的 ,很麻烦