我进行了多次测试,它完美运行,直到我写出Global对象:
@Override
public void onStart(Application app) {
Mails.plugin = app.plugin(MailerPlugin.class).email();
Mails.from = app.configuration().getString("smtp.from");
if (Mails.plugin != null) Logger.info("Mailer plugin successfully loaded");
if (Mails.from != null) Logger.info("Mail account is " + Mails.from);
}
这里我正在加载电子邮件插件。现在,当我尝试使用inMemoryDatabase运行我的fakeApplication时,我得到一个空指针异常。可能是因为fakeApplication不使用配置文件,并且无法从该文件加载配置。请帮我解决这个问题。
答案 0 :(得分:2)
尝试在FakeApplication
中添加自定义配置参数:
Map<String, Object> additionalConfiguration = new HashMap<String, Object>();
additionalConfiguration.put("smtp.from", "foo@bar.com");
running(fakeApplication(additionalConfiguration), new Runnable() {
...
答案 1 :(得分:1)
我找到了解决方案,因此我创建了假的Global类(或者你也可以模拟它):
class Global extends GlobalSettings{
}
然后可以通过它:
@BeforeClass
public static void startApp() {
app = Helpers.fakeApplication(new Global());
Helpers.start(app);
}