4

我有不同的插件实现了Plugin接口。现在我将它们硬编码在 play.plugins 中,如下所示:

100:test.A
200:test.B

但是在我的单元测试中,我不希望同时加载它们。换句话说,在测试 AI 中只想加载插件 A,在测试 B 中只加载 B。有没有办法以编程方式更改配置文件,而不是手动更改配置文件?我猜什么时候fakeApplication()调用所有插件默认加载。

4

1 回答 1

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);
于 2013-07-29T10:00:24.557 回答