【发布时间】:2018-10-23 12:37:24
【问题描述】:
这应该经常发生:
RestController -> SomeClass -> SomeOtherClass -> YetAnotherClass等等……
在我的具体情况下,有一个责任链被注入到休息控制器。每个类都被注入到上面链中的前一个类中。
我已经用 spring boot 实现了这个,我正在尝试测试 REST 资源。我想模拟 "YetAnotherClass" 以便当我使用 MockMvc 发送请求时,我可以验证模拟对象中是否发生了某些事情。
问题是,如果我使用 @MockBean 来模拟 YetAnotherClass,那么我必须将其注入到 SomeOtherClass。我试图用 @TestConfiguration 注入它,但是当请求通过 MockMvc 发送并且模拟对象嵌套在上面的链中深处时,模拟对象注入似乎不起作用. (注入的是原始 bean,而不是 mock 的)
我知道 JMockit 会模拟类的每个实例,因此它可以解决我的问题。但是 Spring boot 默认使用 Mockito,我更愿意避免不一致。
如何实现这样的测试场景?
【问题讨论】:
标签: spring spring-boot mockito