从.txt文件运行整个数据集的JUnit(JAVA)测试

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()用于所有数据.

Ada*_*old 5

您需要的是参数化测试.例如(来自维基)这个:

@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的数据提供程序,它们更有用.