Testing 全局对象onStart未通过所有测试

Testing 全局对象onStart未通过所有测试,testing,playframework-2.0,playframework-2.1,Testing,Playframework 2.0,Playframework 2.1,我做了很多测试,它运行得很好,直到我编写了全局对象: @Override public void onStart(Application app) { Mails.plugin = app.plugin(MailerPlugin.class).email(); Mails.from = app.configuration().getString("smtp.from"); if (Mails.plugin != null) Logg

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

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

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

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

running(fakeApplication(additionalConfiguration), new Runnable() {
...
Map additionalConfiguration=newhashmap();
additionalConfiguration.put(“smtp.from”foo@bar.com");
正在运行(fakeApplication(additionalConfiguration),新的可运行(){
...

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

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

running(fakeApplication(additionalConfiguration), new Runnable() {
...
Map additionalConfiguration=newhashmap();
additionalConfiguration.put(“smtp.from”foo@bar.com");
正在运行(fakeApplication(additionalConfiguration),新的可运行(){
...

我找到了解决方案,因此我创建了伪全局类(或者您也可以模拟它):

然后可以通过它:

@BeforeClass
    public static void startApp() { 
        app = Helpers.fakeApplication(new Global());
        Helpers.start(app);
    }

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

然后可以通过它:

@BeforeClass
    public static void startApp() { 
        app = Helpers.fakeApplication(new Global());
        Helpers.start(app);
    }

不幸的是没有构造函数fakeApplication(inMemoryDatabase,myMap)我添加了所有属性,但也有一个例外,可能插件没有加载?如何使用此映射加载它?不幸的是没有构造函数fakeApplication(inMemoryDatabase,myMap)我添加了所有属性,但也有一个例外,可能是插件没有加载?如何使用此映射加载它?方法
Helpers.fakeApplication(全局)
在Play 2.0中不存在。如果您从这个问题中删除标签
playframework-2.0
,您将自己的答案标记为赢家会感觉稍微好一点:-d方法
助手。伪造应用程序(全局)
在Play 2.0中不存在。如果您从这个问题中删除标签
Play Framework-2.0
,您将感觉自己的答案标记为赢家会稍微好一些:-D