0

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_WEB_ENABLEDは次のように定義されます。

object Config {

  lazy val IS_WEB_ENABLED = Play.configuration.getBoolean("enable.webInterface").getOrElse(false)

}

テストを見るとわかるように、デフォルトでファイルが true に設定されているため、構成設定enable.webInterfaceを falseに上書きしようとしています。application.confしかし、FakeApplication は新しい構成値を取得していません。

私がそこに欠けているものについて何か考えはありますか?

4

3 に答える 3

3

defの代わりに使用してくださいlazy val。以前に Config.IS_WEB_ENABLED を使用していて、true で初期化されていて、val であるため同じ結果しか返さない可能性があります。

object Config {

  def IS_WEB_ENABLED = Play.configuration.getBoolean("enable.webInterface").getOrElse(false)

}
于 2012-11-11T19:43:40.293 に答える
1

Play.configuration偽のアプリケーションが考慮されていないと思われます。

だからこれを試してください(を使用current):

object Config {

  lazy val IS_WEB_ENABLED = Play.current.configuration.getBoolean("enable.webInterface").getOrElse(false)

}
于 2012-11-12T13:25:22.197 に答える
0

渡さMapれたのFakeApplicationは でMap[String, String]、構成からブール値を要求しています。正しい型がないため、値が取得されていないと思われます。しようとするとどうなるか

Play.configuration.getString("enable.webInterface")

代わりは ?

于 2012-11-12T21:16:57.577 に答える