Kor*_*ian 2 java testing junit
JUnit对我来说是新鲜事,我正在测试我的应用程序如下:
@Before
code...
@After
code...
@Test
test for data1
@Test
test for data2...
@Test
test for dataN
Run Code Online (Sandbox Code Playgroud)
但是当我为不同的参数测试相同的方法时,我不希望我的测试需要几百行.我想做这样的事情,但我想得到每个测试的结果
@Test
public final void testAll(){
String data = load from file
String bool = load from file
boolean expectedResult;
if(bool.equals("T")
expectedResult = true;
else
expectedResult = false;
assertEquals(expectedResult, testedMethod(data);
}
Run Code Online (Sandbox Code Playgroud)
内部有一些循环testAll()用于所有数据.
您需要的是参数化测试.例如(来自维基)这个:
@RunWith(Parameterized.class)
public class FibonacciTest {
@Parameters
public static Collection<Object[]> data() {
return Arrays.asList(new Object[][] {
{ 0, 0 }, { 1, 1 }, { 2, 1 }, { 3, 2 }, { 4, 3 }, { 5, 5 }, { 6, 8 }
});
}
private int fInput;
private int fExpected;
public FibonacciTest(int input, int expected) {
fInput= input;
fExpected= expected;
}
@Test
public void test() {
assertEquals(fExpected, Fibonacci.compute(fInput));
}
}
Run Code Online (Sandbox Code Playgroud)
是一个人的样子.
您可能还想查看TestNG的数据提供程序,它们更有用.
| 归档时间: |
|
| 查看次数: |
277 次 |
| 最近记录: |