我有以下代码:
@Component
@Slf4j
public class MyClass {
private OtherClass otherClass;
@Autowired
public MyClass(OtherClass otherClass) {
this.otherClass = otherClass;
}
public void start() {
try {
otherClass.execute();
} catch (FeatureException exception) {
log.warn(exception.getMessage());
}
}
Run Code Online (Sandbox Code Playgroud)
我想做测试来验证日志消息。我不知道如何。
谢谢
该SLF4J项目建议使用该库SLF4J测试这个用例。
在您的情况下(也使用 Hamcrest 和 Mockito):
public class MyClassTest {
TestLogger logger = TestLoggerFactory.getTestLogger(MyClass.class);
@Test
public void testStart_loggingFailureMessage() {
OtherClass otherClass = mock(OtherClass.class);
MyClass myClass = new MyClass(otherClass);
when(otherClass.execute()).thenThrow(new FeatureException("Some text"));
myClass.start();
assertThat(logger.getLoggingEvents(), is(asList(LoggingEvent.warn("Some text"))));
}
@After
public void clearLoggers() {
TestLoggerFactory.clear();
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5297 次 |
| 最近记录: |