Junit 不同测试方法上的InvalidUseofMatchers异常
我在一个与使用Matchers的测试不同的测试中遇到InvalidUseOfMatchers异常 以下两个测试单独运行良好,但同时运行时,在第一个测试成功通过后,第二个测试失败,并抛出指向第一个测试的InvalidUseofMatcherExceptionJunit 不同测试方法上的InvalidUseofMatchers异常,junit,mockito,spring-test,Junit,Mockito,Spring Test,我在一个与使用Matchers的测试不同的测试中遇到InvalidUseOfMatchers异常 以下两个测试单独运行良好,但同时运行时,在第一个测试成功通过后,第二个测试失败,并抛出指向第一个测试的InvalidUseofMatcherException @Test(预期=InputException.class) public void应通过Exception whenInputNull()进行{ calculator.calculateA(any(),any(),any(),eq(null
@Test(预期=InputException.class)
public void应通过Exception whenInputNull()进行{
calculator.calculateA(any(),any(),any(),eq(null));
}
@测试
公共void testCalculateB(){
assertTrue(BigDecimal.valueOf(8000).compareTo(calculator.calculateB(12))=0;
}
这是堆栈跟踪中的异常
org.mockito.exceptions.misusing.InvalidUseOfMatchersException:
此处检测到错位或误用的参数匹配器:
TestClass.在输入null时应通过异常
根据例外情况,第一次测试应该失败,但它的通过和第二次测试是失败的。单独而言,这两项测试都成功通过
calculator.calculateA(any(), any(), any(), eq(null));
这不是Matchers的有效用法。Mockito仅在与when
或verify
一起使用时使用any
和eq
,作为匹配调用的一种手段,告诉Mockito返回什么或应该记录什么调用。您需要使用特定的值调用calculateA
,例如calculator.calculateA(1,2,3,null)代码>
Mockito匹配器,所以Mockito可以抛出异常的唯一时间是下次与Mockito交互时。这可能是另一种方法,但您可以通过使用MockitoRule、MockitoJUnitRunner或通过在
方法之后添加对的调用来帮助确保这些方法是本地的:
@After public void validateMockito() {
Mockito.validateMockitoUsage();
}
谢谢你的快速回复!