环境
hamcrest-all-1.3
junit-4.13.2
被测类
package com.yaya.junit;
public class Factorial {
public long factorial(long number) {
if(number == 0) {
return 1;
}
return number*factorial(number-1);
}
}
测试类一:使用构造函数
package com.yaya.junit;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameter;
import org.junit.runners.Parameterized.Parameters;
import java.util.Arrays;
import java.util.Collection;
import static org.junit.Assert.assertEquals;
@RunWith(Parameterized.class)
public class ParameterizedFactorialTest {
private int number;
private int expectedResult;
public ParameterizedFactorialTest(int input, int expected) {
number= input;
expectedResult= expected;
}
@Parameters
public static Collection<Object[]> factorialData() {
return Arrays.asList(new Object[][] {
{ 0, 1 }, { 1, 1 }, { 2, 2 }, { 3, 6 }, { 4, 24 }, { 5, 120 },{ 6, 720 }
});
}
@Test
public void factorial() throws Exception {
Factorial fact = new Factorial();
assertEquals(fact.factorial(number),expectedResult);
}
}
测试类二:使用公有变量
package com.yaya.junit;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameter;
import org.junit.runners.Parameterized.Parameters;
import java.util.Arrays;
import java.util.Collection;
import static org.junit.Assert.assertEquals;
@RunWith(Parameterized.class)
public class ParameterizedFactorialTest {
@Parameter(value=0)
public int number;
@Parameter(value=1)
public int expectedResult;
@Parameters
public static Collection<Object[]> factorialData() {
return Arrays.asList(new Object[][] {
{ 0, 1 }, { 1, 1 }, { 2, 2 }, { 3, 6 }, { 4, 24 }, { 5, 120 },{ 6, 720 }
});
}
@Test
public void factorial() throws Exception {
Factorial fact = new Factorial();
assertEquals(fact.factorial(number),expectedResult);
}
}