假设我想测试如果
log.warn
为空,此方法是否打印 Flux
消息
@Slf4j
class SomeClass {
void someMethod(Flux<Integer> intFlux) {
intFlux.switchIfEmpty(Mono.defer(() -> {
log.warn("No integers!");
return Mono.empty();
}))
.subscribe(/* consume */);
}
}
我该怎么做?具体来说,如果可能的话,我如何在 Lombok 的记录器上断言?它没有传递到构造函数中,我不能
mock()
和verify()
。这是摆脱 Lombok 的唯一选择吗?
拦截系统输出:
// pre test
ByteArrayOutputStream capturedOutput = new ByteArrayOutputStream();
PrintStream newOut = new PrintStream(capturedOutput);
System.setOut(newOut);
// run tests
newOut.flush();
// restore sysout
System.setOut(oldOut);
String output = capturedOutput.toString();
// assert 'output' contains stuff