gpt4 book ai didi

java - 使用实例而不是类运行 JUnitCore

转载 作者:行者123 更新时间:2023-12-02 11:56:22 25 4
gpt4 key购买 nike

我希望以编程方式运行JUnit 4.12+,粗略搜索后发现(在许多其他类似的帖子中)this answer ,它规定了以下基本解决方案:

@RunWith(Suite)
@Suite.SuiteClasses ({
MyTestClass1.class,
MyTestClass2.class
})
public class MyTestSuite {
}

Result testResults = JUnitCore.runClasses(MyTestSuite.class);

...我毫不费力就能让这个工作正常进行。到目前为止一切顺利!

问题是:我有一些非常复杂的测试类,需要在运行时用非常具体的属性进行实例化/注入(inject)......这不是可以从无参数构造函数内部完成的事情。但是上述方法(指定仅运行一组类的任何旧实例)不允许您实例化测试类、配置它们,然后然后运行它们.

有办法做到这一点吗?我在 JUnit API 上找不到任何内容。我正在寻找类似的东西:

MyTestClass1 mtc1 = new MyTestClass1(...);
MyTestClass2 mtc2 = new MyTestClass2(...);
Result testResults = JUnitCore.run(mtc1, mtc2);

最佳答案

您可能需要自定义运行者来实现这一目标。 Junit 4/5 附带了第三方运行器,可以为构造函数和方法执行依赖注入(inject)。如果您使用 Spring,那么非常流行的运行器是 Mockito(MockitoJUnitRunner) 和 SpringJUnit4ClassRunner。您可以在以下位置查看自定义运行器和实现详细信息: https://github.com/junit-team/junit4/wiki/Custom-runners

关于java - 使用实例而不是类运行 JUnitCore,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47577439/

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