我想用“真实”数据测试我的代码。这个数据可以在套件中的每个测试中重复使用,因为它是只读数据。
数据的加载很长,我想在整个套件中重复使用加载的数据(在众多测试用例中)。现在我将数据存储为静态字段。像这样:
Context.setData(new DataReader().getData(url));
什么是更“JUnit”的方式(即加载大量数据并在几个测试用例中使用它)?我真的不喜欢这个,因为它有明显的缺点。例如,谁初始化数据?
我还有什么其他方法可以实现这个目标?
答案 0 :(得分:1)
您可能想要使用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
的方法只调用一次。