Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 测试:FakeApplication忽略附加配置_Scala_Playframework_Playframework 2.0_Specs2 - Fatal编程技术网

Scala 测试:FakeApplication忽略附加配置

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

我试图在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_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提到的“当前”参考。一旦我有电流,这就解决了。万分感谢!