【发布时间】:2019-11-29 19:48:55
【问题描述】:
我在 Spring Boot 中有一个从我的班级调用的依赖项。此依赖项使用新实例化的构建器模式类作为参数进行调用。我需要知道在进行依赖调用时是否可以验证这个单个构建器类是否是用某些值构造的,例如:
public class MyClass {
@Autowired
private MyDep myDep;
public void callMyDepService() {
myDep.serviceCall(new MyBuilder().paramOne("One").paramTwo("Two").build());
}
}
如您所见,每次都会实例化一个新的 MyBuilder,所以我不能只使用 Mockito 的 eq() 来匹配参数的值。
【问题讨论】:
-
MyBuilder构建什么类?您可以使用它并为any()定义它(或者只使用任何而不定义类),如果您想验证您的参数,请使用Captor或使用thenAnswer/doAnswer来拦截参数。跨度> -
此外,您应该对
MyBuilder类进行单独的测试,以验证它是否正确构建。如果您的myDep.serviceCall需要某些属性,则该类本身应对此进行验证,这又将是一个单独的测试。 -
@second 我想确保
callMyDepService使用某些参数值调用myDep.serviceCall。它们是硬编码的,其中有几个callMyDepService方法具有类似的依赖服务调用。我不关心构建器类,因为它有自己的单元测试。
标签: java spring spring-boot junit mockito