我在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 +。
答案 0 :(得分:0)
为什么不使用简单的java api?
文档:http://docs.oracle.com/javase/8/docs/api/java/nio/file/Files.html#lines-java.nio.file.Path-
答案 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)
}
}