gpt4 book ai didi

java - 具有动态测试数量的 JUnit 测试

转载 作者:IT老高 更新时间:2023-10-28 11:32:31 26 4
gpt4 key购买 nike

在我们的项目中,我有几个 JUnit测试例如从目录中获取每个文件并对其运行测试。如果我在 TestCase 中实现 testEveryFileInDirectory 方法,这将显示为只有一个可能失败或成功的测试。但我对每个单独文件的结果感兴趣。如何编写 TestCase/TestSuite 以便每个文件显示为单独的测试,例如在 Eclipse 的图形化 TestRunner 中? (不能为每个文件编写明确的测试方法。)

比较问题ParameterizedTest with a name in Eclipse Testrunner .

最佳答案

看看 JUnit 4 中的 Parameterized Tests

实际上我几天前就这样做了。我会尽力解释...

首先正常构建您的测试类,因为您只使用一个输入文件进行测试。用以下方式装饰你的类(class):

@RunWith(Parameterized.class)

构建一个构造函数,该构造函数接受在每次测试调用中都会更改的输入(在这种情况下,它可能是文件本身)

然后,构建一个静态方法,该方法将返回一个 Collection 数组。集合中的每个数组都将包含您的类构造函数的输入参数,例如文件。用以下方式装饰这个方法:

@Parameters

这是一个示例类。

@RunWith(Parameterized.class)
public class ParameterizedTest {

private File file;

public ParameterizedTest(File file) {
this.file = file;
}

@Test
public void test1() throws Exception { }

@Test
public void test2() throws Exception { }

@Parameters
public static Collection<Object[]> data() {
// load the files as you want
Object[] fileArg1 = new Object[] { new File("path1") };
Object[] fileArg2 = new Object[] { new File("path2") };

Collection<Object[]> data = new ArrayList<Object[]>();
data.add(fileArg1);
data.add(fileArg2);
return data;
}
}

也可以查看 example

关于java - 具有动态测试数量的 JUnit 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/358802/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com