我正在尝试为Play Framework 2.2编写单元测试。我要测试的课程会调用Play插件,例如
Exception e = new Exception();
MongoLogger.error(e);
插件的类定义为
MongoLogger extends Plugin
我如何使用Mockito模拟并注册该课程。我想避免对单元测试使用FakeApplication。任何帮助,将不胜感激。
最佳答案
使用包装器设计模式将对MongoLogger
的调用封装到接口:
public interface Logger {
// methods
}
public interface DefaultLogger implements Logger {
private final MongoLogger mongoLogger;
public void error(Object e){
monoLogger.error(e);
}
}
在生产代码中,无论您在何处调用
Logger
,都使用MongoLogger
界面。在测试代码中,注入模拟对象:Mockito.mock(Logger.class);