java runwith_jUnit中的多个RunWith语句

小编典典

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

那么,解决方案是什么?解决的办法是只放一个@RunWith()你无法忍受的赛跑者,然后用其他东西代替。对于您的情况,我想您将删除MockitoJUnitRunner并以编程方式执行此操作。

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

MockitoAnnotations.initMocks(test);

在测试用例的开始。因此,最简单的解决方案是将以下代码放入setUp()方法中:

@Before

public void setUp() {

MockitoAnnotations.initMocks(this);

}

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

private boolean mockInitialized = false;

@Before

public 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();

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

2020-09-09

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值