您不能执行此 *** 作,因为根据规范,您不能将相同的注释两次放置在相同的注释元素上。
那么,解决方案是什么?解决的办法是只放一个
@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();
您可以与任何所需的运行程序一起运行此测试用例。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)