在使用Spring Boot的@MockBean时创建严格模拟?

时间:2017-02-01 09:14:00

标签: java spring spring-boot mockito

我使用@MockBean的春季启动(@RunWith(SpringRunner.class)),到目前为止一切正常 然而,mock为mocked类的每个方法提供了默认实现,所以我无法检查是否只调用那些我希望被调用的方法,即我想创建严格模拟。
这可能是@MockBean吗?

如果有人知道如何只检查那些我预期的方法,那么我不会坚持创建严格的模拟。

提前感谢您的帮助!

的问候,

2 个答案:

答案 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创建的模拟对象。 它可以检查它调用了多少次,指定了什么参数,等等。 请试一试。