java - 使用 spring boot 的 @MockBean 时创建严格的模拟?

标签 java spring spring-boot mockito

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

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

提前感谢您的帮助!

问候,
五、

最佳答案

使用 Mockito,您可以验证是否调用了一个方法:

verify(mockOne).add("one");

或者它从未被调用(never() 是 times(0) 的更具可读性的别名):

verify(mockOne, never()).remove("two");

或者您可以验证没有调用其他方法:

verify(mockOne).add("one"); // check this one
verifyNoMoreInteractions(mockOne); // and nothing else

有关详细信息,请参阅 Mockito documentation .

关于java - 使用 spring boot 的 @MockBean 时创建严格的模拟?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41975891/

相关文章:

java - 如何使用java在Repository Spring Boot中执行将由特定符号分隔的查询

java - @DataJpaTest 不识别嵌入式 id 中的非空限制

java - Spring请求参数仅接受整数

spring - Spring `@Configuration` 类的排序

spring - javax.persistence.TransactionRequiredException : Executing an update/delete query

java - 如何停止java中信号量中的特定thead?

postgresql - 使用 Postgres LTREE 时如何将参数传递给 JPA?

java - Spring MVC 和 Thymeleaf - 之间有什么区别 :value and th:field when you iterate multiple items?

Java 构造函数错误

java - Hibernate日期映射问题