0

我进行了许多测试,它运行得很好,直到我编写了全局对象:

    @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 不使用配置文件,并且无法从该文件加载配置。请帮我解决这个问题。

4

2 回答 2

2

尝试在您的添加自定义配置参数FakeApplication

Map<String, Object> additionalConfiguration = new HashMap<String, Object>();
additionalConfiguration.put("smtp.from", "foo@bar.com");

running(fakeApplication(additionalConfiguration), new Runnable() {
...
于 2013-06-10T16:05:44.583 回答
1

我找到了解决方案,因此我创建了假的 Global 类(或者你也可以模拟它):

class Global extends GlobalSettings{

}

然后可以通过它:

@BeforeClass
    public static void startApp() { 
        app = Helpers.fakeApplication(new Global());
        Helpers.start(app);
    }
于 2013-06-10T17:48:53.180 回答