在测试过程中是否可以禁用日志记录器的执行?
我有这个类:
public class UnitTestMe {
private final MockMe mockMe;
private final SomethingElse something;
private final Logger logger = LoggerFactory.getLogger(this.getClass().getClass());
public UnitTestMe(MockMe mockMe, SomethingElse something) {
this..
}
public toTest() {
logger.info("Executing toTest. MockMe a: {}, Foo: b: {}", mockMe.toString(), something.foo().bar());
mockMe.execute();
}
}
我的单元测试由于某个对象不是一个模拟对象(我正在使用Mockito和NiceMock),导致出现了NullPointerException。
如何在不移除日志记录语句且不模拟依赖项的无关部分(如something
)的情况下测试此类?
编辑:在这种情况下,something是一个客户对象,在toTest()
函数中未被使用,但在该类的其他部分中需要。我在日志记录语句中使用Customer类将操作与用户相关联。
编辑2:模拟日志记录器对象是否有帮助?我会认为我会再次收到NullPointerException,因为`something´对象的方法也会被执行。
try...catch (NullPointerException)
包围起来? - bluefoot