Fab*_*aud 1 java mockito spring-boot junit5
我开始测试 Spring Boot 2.0.0,我遇到了 Mockito 2.17.0 和 JUnit 5.1.0 的奇怪行为。
从我所见,将模拟注入所需 bean 的方法是@ExtendWith在MockitoExtension类中使用新注释。
所以,这是我的测试课:
@ExtendWith(MockitoExtension.class)
class MyServiceTest {
@Mock
private A a;
@Mock
private B b;
@InjectMocks
private MyService myService;
// The test methods are omitted
}
Run Code Online (Sandbox Code Playgroud)
这似乎很好,但我发现模拟没有按预期调用,我发现这是由于测试类和服务本身的不同实例a和b内部实例。
实际上,这是因为MockitoExtension应用了两次,第二次应用,该myService字段没有被评估为null(显然)这意味着新创建的模拟(a和b)没有设置为当前myService实例或新实例.
我是不是忘记了什么?
我想我可以自己处理模拟,但我认为这不是目的 InjectMocks注释。
感谢您的时间。
看起来您遇到了 Mockito 问题:mockito#1346。
它已经修复,因此您可以等待公开发布或使用 dev build 2.17.2:https ://bintray.com/mockito/maven/mockito-development/2.17.2 (发行说明)
| 归档时间: |
|
| 查看次数: |
602 次 |
| 最近记录: |