java - 如何加载大量数据并将其用于多个测试用例?

标签 java unit-testing junit integration-testing

我想用“真实”数据测试我的代码。此数据可以在套件中的每个测试中重复使用,因为它是只读数据。

数据的加载时间很长,我想在整个套件中重用加载的数据(在许多测试用例中)。现在我将数据存储为静态字段。像这样:

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/

相关文章:

java - Spring jdbcTemplate数据访问和java算法

java - 我应该在单元测试中检查协作者的返回值吗?

import - 如何将 JUnit 的工作目录从 maven 导入到 IDEA

python - fileinput.input 的单元测试

c# - 使用 CodedUITest 方法从快捷方式执行 .exe

java - 不确定为什么这个单元测试有效。 Spring ConfigurationContext 更新或创建新对象?

java - 项目构建良好,但为什么 JUnit 测试失败?

java - 如何仅从 Mongodb 文档中获取特定字段?

java - 我们可以将java编译器集成到azure应用程序中吗?

java - apache ant 可变文件类型属性