我正在为扩展 B 类的 A 类编写单元测试。我正在使用 Mockito,我想模拟 org.slf4j.logger 两个类都可以使用。问题是当 A 类调用 B 类的方法时,模拟的记录器没有注入到 B 类中,所以我得到了一个 NPE。有没有办法成功测试这个?
public class ClassA extends ClassB {
@Inject
private static final Logger LOGGER = LoggerFactory.getLogger(ClassA.class);
public void classAMethod {
LOGGER.debug("u wot m8");
this.classBMethod();
}
public class ClassB {
@Inject
private static final Logger LOGGER = LoggerFactory.getLogger(ClassB.class);
public void classBMethod {
LOGGER.debug("u wot m8");
}
}
public class ClassATest {
@InjectMocks
private ClassA classA = new ClassA
@Mock
private Logger mockLogger;
@Test
public void testClassA() {
classA.classAMethod ();
verify(mockLogger, (times, 2)).debug(Mockito.anyString());
}
}