我在Plugin
界面实现了不同的插件。现在我把它们硬编码在play.plugins中就像这样:
100:test.A
200:test.B
然而,在我的单元测试中,我不希望一次加载它们。换句话说,在测试A中我只想加载插件A而在测试B中只加载B.而不是手动更改配置文件,有没有办法以编程方式更改它?我想在调用fakeApplication()
时默认加载所有插件。
答案 0 :(得分:10)
您可以使用添加或排除的插件以及自定义配置启动FakeApplication
。
这是scala中的一个示例(我相信Java API具有等效的机制):
val app = FakeApplication(
withoutPlugins = List("test.A", "test.B"),
additionalPlugins = List("test.C"),
additionalConfiguration = Map("customConfigKey" -> "customConfigValue")
)
在Java中,您可以使用fakeApplication
类中提供的play.test.Helpers
静态方法之一。这是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);