Junit:如何知道参数文件中的行号

时间:2017-03-05 10:25:24

标签: java junit

我在junit中有一个方法负责检查一个非常大的文件中的错误(超过200k行)。

我想知道Junit是否存在任何变量,其中包含具有该文件的行以及他正在进行测试的行,以便使用它们。

我知道在testCase()中有一个私有变量,它包含运行测试的行,但我无法访问它,有什么建议吗?

使用的代码如下:

@Test
@FileParameters("fileparameter")
public void testFechaAlteracionExpedienteFS(String line) {
String TEST= 'test';
assertThat(TEST).overridingErrorMessage("Expected: <%s> - but it was: <%s>", line, TEST, ConstantesSql.getConsulta()).isEqualTo(line);

我正在使用Maven和Junit 4 +。

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

使用参数化测试:

import java.io.File;
import java.util.Arrays;
import java.util.Collection;

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;

@RunWith(Parameterized.class)
public class ParameterizedTest {

    @Parameter(0)
    public File file;

    @Parameter(1)
    public String line;

    @Parameters(name = "{index}: {0}")
    public static Collection<Object[]> data() {
        return Arrays.asList(
                new Object[][] { { new File("/path/to/file1"), "line1" },
                        { new File("/path/to/file2"), "line2" },
                        { new File("/path/to/file3"), "line3" } });
    }

    @Test
    public void test() {
        // Your test code here (read file and line variables)
    }

}