Scala 测试:FakeApplication忽略附加配置
我试图在Play 2.0 w/Scala项目上添加一个测试:Scala 测试:FakeApplication忽略附加配置,scala,playframework,playframework-2.0,specs2,Scala,Playframework,Playframework 2.0,Specs2,我试图在Play 2.0 w/Scala项目上添加一个测试: "Application" should { "return 404 on the index Action if web is disabled " in { running(FakeApplication(additionalConfiguration = Map(("enable.webInterface" -> "false")) )) { Config.IS_WEB_ENABLE
"Application" should {
"return 404 on the index Action if web is disabled " in {
running(FakeApplication(additionalConfiguration = Map(("enable.webInterface" -> "false")) )) {
Config.IS_WEB_ENABLED must beFalse
val result = controllers.Application.index()(FakeRequest())
status(result) must equalTo(NOT_FOUND)
contentType(result) must beSome("text/html")
charset(result) must beSome("utf-8")
}
}
}
值Config.IS\u WEB\u ENABLED
定义为:
object Config {
lazy val IS_WEB_ENABLED = Play.configuration.getBoolean("enable.webInterface").getOrElse(false)
}
正如您看到的测试一样,我尝试将enable.webInterface
的配置设置覆盖为false,因为application.conf
文件默认设置为true。但是FakeApplication没有获得新的配置值
你知道我遗漏了什么吗?使用
def
而不是lazy val
,也许你以前使用过Config.IS_WEB_启用,它被初始化为true,并且只返回相同的结果,因为它是val
object Config {
def IS_WEB_ENABLED = Play.configuration.getBoolean("enable.webInterface").getOrElse(false)
}
使用
def
而不是lazy val
,可能您以前使用过Config.IS_WEB_启用,它被初始化为true,并且只返回相同的结果,因为它是val
object Config {
def IS_WEB_ENABLED = Play.configuration.getBoolean("enable.webInterface").getOrElse(false)
}
我怀疑
Play.configuration
没有考虑假应用程序
因此,请尝试以下方法(使用当前的current
):
我怀疑
Play.configuration
没有考虑假应用程序
因此,请尝试以下方法(使用当前的current
):
传入的
FakeApplication
映射是一个Map[String,String]
,您正在从配置请求一个布尔值。我怀疑该值没有被提取,因为它没有正确的类型。如果你尝试,会发生什么
Play.configuration.getString("enable.webInterface")
相反?传入的
FakeApplication
中的Map
是一个Map[String,String]
,您正在从配置中请求一个布尔值。我怀疑该值没有被提取,因为它没有正确的类型。如果你尝试,会发生什么
Play.configuration.getString("enable.webInterface")
相反?在应用程序中使用它是否有效?它只会在测试上下文中忽略它?在应用程序中使用它是否有效?它只在测试环境中忽略了它?不幸的是,它没有解决问题:(虽然很好,我确信它是这样的!arf,我也很自信;-)有没有打印配置内容的方法?最后,它似乎是你的答案和@Schleichardt答案的组合。谢谢!不幸的是,它没有解决这个问题:(虽然很好,但我确信它是这样的!arf,我也很自信;-)有没有办法打印配置的内容?最后,似乎是你的答案和@Schleichardt答案的组合。谢谢!当我第一次尝试时,我错过了Nico_ekito提到的“当前”参考。一旦我有电流,这就解决了。万分感谢!当我第一次尝试时,我错过了Nico_ekito提到的“当前”参考。一旦我有电流,这就解决了。万分感谢!