我有一个SLF4J记录器实例的类,如:
public class MyClass {
private static final Logger log = LoggerFactory.getLogger(MyClass.class);
public void foo() {
log.warn("My warn");
}
}
Run Code Online (Sandbox Code Playgroud)
我需要用JMockit测试它,如:
@Test
public void shouldLogWarn(@Mocked Logger log) throws Exception {
new Expectations() {{
log.warn(anyString);
}};
MyClass my = new MyClass();
my.foo();
}
Run Code Online (Sandbox Code Playgroud)
经过大量搜索后我发现,我需要以某种方式使用MockUp.但无法准确地得到它.
顺便说一下,我正在使用JMockit(1.29)的最新版本,你不能再为最终静态字段设置setField(log).