我尝试使用mockito来模拟一个方法,该方法根据传递给它的参数返回不同的值,使用不同的值“aaa”和“bbb”
when(myServiceMock.mymethod("aaa", myEnum.ONE)).thenReturn(true);
when(myServiceMock.mymethod("bbb", myEnum.ONE)).thenReturn(false);
为什么它不让我这样做呢?我得到了一个“UnnecessaryStubbingException”,即使stubbed方法的第一个参数是不同的
1条答案
按热度按时间ig9co6j11#
UnnecessaryStubbingException
发生在当你尝试stub一个方法,但它实际上并没有在被测试的代码中使用时。这通常发生在同一个方法有多个stub时,Mockito检测到其中一些是不必要的。在您的例子中,异常可能是由于您没有在测试代码中使用模拟的方法,所以Mockito检测到它并抛出异常。
为了避免这种情况,您需要确保您正在模拟的方法实际上在您的测试代码中使用。
例如,下一个代码将工作没有任何问题:
在下一种情况下,
UnnecessaryStubbingException
将被抛出:您还可以阅读有关该异常以及如何在该线程中处理它的更多信息。