我正在为我们的一种反应方法编写单元测试。此方法依赖于另一个服务。我嘲笑了这项服务。运行测试时,我收到以下错误: java.lang.AssertionError: expectation "expectError(Class)" failed (expected: onError(MyException); actual: onComplete())。
这是我尝试过的:
方法(ReactiveService.class):
@Autowired
private Service serice;
public Mono<MyObject> save(List<MyObject> arg1, String arg2) {
return SomeUtil.user()
.map(user -> service.save(arg1, arg2, user))
.subscribeOn(scheduler)
.doOnError(e -> {
throw new MyException(MyObject.class, "save object", e);
});
}
测试:
@Mock
Service service;
@InjectMocks
ReactiveService reactiveService;
@Test
public void unit_test(){
when(service.save(any(), any(), any())).thenThrow(new RuntimeException());
Mono<MyObject> result = reactiveService.save(arg1, arg2);
StepVerifier.create(result)
.expectError(MyException.class)
.verify();
}
从错误中我了解到,该方法没有收到任何信号。但我没有得到我在这里错过的东西。
BIG阳
相关分类