如何在Play框架单元测试中加载不同的插件



我有不同的插件来实现Plugin接口。现在我在游戏中对它们进行了硬编码。插件如下:

100:test.A
200:test.B

然而,在我的单元测试中,我不希望同时加载这两个测试。换句话说,在测试A中,我只想加载插件A,在测试B中只加载B。有没有一种方法可以通过编程方式更改配置文件,而不是手动更改配置文件?我想当调用fakeApplication()时,默认情况下会加载所有插件。

您可以使用添加或排除的插件以及自定义配置启动FakeApplication

下面是scala中的一个例子(我相信Java API有一个等价的机制):

val app = FakeApplication(  
  withoutPlugins = List("test.A", "test.B"),  
  additionalPlugins = List("test.C"),  
  additionalConfiguration = Map("customConfigKey" -> "customConfigValue")  
)

在Java中,可以使用play.test.Helpers类中可用的fakeApplication静态方法之一。以下是scala示例的等价物:

import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
import java.util.List;
import play.test.FakeApplication;
import static play.test.Helpers.*;
Map<String, Object> additionalConfiguration = new HashMap<String, Object>();
additionalConfiguration.put("customConfigKey", "customConfigValue");
List<String> withoutPlugins = Arrays.asList("test.A", "test.B");
List<String> additionalPlugins = Arrays.asList("test.C");
FakeApplication app = fakeApplication(additionalConfiguration, additionalPlugins, withoutPlugins);

最新更新