junit復習その2
2418 ワード
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));
}
}
まだまだ制限が大きくて面倒なのがわかります