jUnit中的多个RunWith语句

jUnit中的多个RunWith语句,第1张

jUnit中的多个RunWith语句

您不能执行此 *** 作,因为根据规范,您不能将相同的注释两次放置在相同的注释元素上。

那么,解决方案是什么?解决的办法是只放一个

@RunWith()
你无法忍受的赛跑者,然后用其他东西代替。对于您的情况,我想您将删除
MockitoJUnitRunner
并以编程方式执行此 *** 作。

实际上,它唯一要做的就是运行

MockitoAnnotations.initMocks(test);

测试用例的开始。因此,最简单的解决方案是将以下代码放入

setUp()
方法中:

@Beforepublic void setUp() {    MockitoAnnotations.initMocks(this);}

我不确定,但是您 可能 应该避免使用flag多次调用此方法:

private boolean mockInitialized = false;@Beforepublic void setUp() {    if (!mockInitialized) {        MockitoAnnotations.initMocks(this);        mockInitialized = true;      }}

但是,可以使用JUnt的规则实现更好的可重用解决方案。

public class MockitoRule extends TestWatcher {    private boolean mockInitialized = false;    @Override    protected void starting(Description d) {        if (!mockInitialized) { MockitoAnnotations.initMocks(this); mockInitialized = true;          }    }}

现在,只需将以下行添加到您的测试类中:

@Rule public MockitoRule mockitoRule = MockitoJUnit.rule();

您可以与任何所需的运行程序一起运行此测试用例。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5478043.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-12
下一篇 2022-12-12

发表评论

登录后才能评论

评论列表(0条)

保存