gpt4 book ai didi

java - 如何运行由工厂方法创建的 (JUnit) TestSuite?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:28:11 26 4
gpt4 key购买 nike

我正在寻找自定义实现的集合的验证测试,并偶然发现了这个:http://www.gamlor.info/wordpress/2012/09/google-guava-collection-test-suite/

我以前没有使用过 junit(所以我完全是 junit 的菜鸟)。我将 junit4 添加到我的测试项目中,然后...卡住了如何实际运行由 Google Guava Collection 测试套件创建的测试套件。我从我的测试类运行带注释的测试就好了,但不是来自 Guava 的测试套件。

junit 文档说套件是通过使用 Suite 批注对套件类进行批注来创建的,列出它们应该包括的情况,但显然我不能以这种方式列出动态生成的类。我很乐意只创建一个简单的测试并将整个套件作为单个测试运行,只是......如何让 junit 运行套件实例?

最佳答案

如果您有一个返回 Test 对象的工厂方法(我们称它为 TestMaker.foo()),那么您可以编写类似下面的内容来获取 Test 并将其添加到您自己的 TestSuite 类中:

import junit.framework.JUnit4TestAdapter;
import junit.framework.TestSuite;
import org.junit.runner.RunWith;
import org.junit.runners.AllTests;

@RunWith(AllTests.class)
public class TestRunner {
public static TestSuite suite() {
TestSuite ts = new TestSuite();

ts.addTest(TestMaker.foo());

return ts;
}
}

现在,当您运行 TestRunner 测试时,它还会运行 TestMaker.foo() 返回的 Test 以及任何其他可能直接在 TestRunner 中定义的测试。

有关相关讨论(例如,如何引用测试类而不是传递测试对象),请查看:How do I Dynamically create a Test Suite in JUnit 4?

关于java - 如何运行由工厂方法创建的 (JUnit) TestSuite?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18559831/

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