我想用“真实”数据测试我的代码。此数据可以在套件中的每个测试中重复使用,因为它是只读数据。
数据的加载时间很长,我想在整个套件中重用加载的数据(在许多测试用例中)。现在我将数据存储为静态字段。像这样:
Context.setData(new DataReader().getData(url));
执行此操作的更“JUnit”方式是什么(即加载大量数据并在多个测试用例中使用它)?我真的不喜欢这个,因为它有明显的缺点。比如谁初始化数据?
我还有哪些其他选择可以实现这一目标?
最佳答案
您可能想使用 ParametrizedTests :
import java.net.URL;
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.Parameters;
@RunWith(Parameterized.class)
public class MyTest {
@Parameters
public static Collection<Object[]> data() {
return Arrays.asList(new Object[][] {
{ new DataReader().getData(url) }
});
}
private final Data data;
public MyTest( Data data) {
this.data = data;
}
@Test
public void test1() {
//
}
@Test
public void test2() {
//
}
}
注解为@Parameters
的方法只被调用一次。
关于java - 如何加载大量数据并将其用于多个测试用例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24823972/