我使用@MockBean
的春季启动(@RunWith(SpringRunner.class)
),到目前为止一切正常
然而,mock为mocked类的每个方法提供了默认实现,所以我无法检查是否只调用那些我希望被调用的方法,即我想创建严格模拟。
这可能是@MockBean
吗?
如果有人知道如何只检查那些我预期的方法,那么我不会坚持创建严格的模拟。
提前感谢您的帮助!
的问候,
诉
答案 0 :(得分:3)
使用Mockito,您可以验证是否调用了方法:
verify(mockOne).add("one");
或者它从未被调用过(never()是时间(0)更易读的别名):
verify(mockOne, never()).remove("two");
或者您可以验证没有其他方法被调用:
verify(mockOne).add("one"); // check this one
verifyNoMoreInteractions(mockOne); // and nothing else
有关详细信息,请参阅Mockito documentation。
答案 1 :(得分:0)
您可以将Mockito.verify方法用于由@Mockbean创建的模拟对象。 它可以检查它调用了多少次,指定了什么参数,等等。 请试一试。