如何在Play框架unit testing中加载不同的插件?
我有不同的插件实现Plugin
接口。 现在我把它们硬编码在play.plugins中,如下所示:
100:test.A 200:test.B
但是在我的unit testing中,我不希望一次加载它们。 换句话说,在测试AI中只想加载插件A而在测试B中只加载B. 而不是手动更改配置文件,有没有办法以编程方式更改它? 我fakeApplication()
调用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 additionalConfiguration = new HashMap(); additionalConfiguration.put("customConfigKey", "customConfigValue"); List withoutPlugins = Arrays.asList("test.A", "test.B"); List additionalPlugins = Arrays.asList("test.C"); FakeApplication app = fakeApplication(additionalConfiguration, additionalPlugins, withoutPlugins);