Play Framework:IntegrationSpec忽略在运行游戏测试时提供给FakeApplication的配置

时间:2013-11-01 07:08:46

标签: unit-testing scala playframework playframework-2.0

我正在使用Play 2.2和Specs2并进行以下测试

  import org.specs2.mutable.Specification
  import org.specs2.runner.JUnitRunner

  import play.api.test.Helpers.running
  import play.api.test.{FakeApplication, TestBrowser, TestServer}
  import java.util.concurrent.TimeUnit
  import org.openqa.selenium.firefox.FirefoxDriver
  import org.fluentlenium.core.domain.{FluentList, FluentWebElement}
  import org.openqa.selenium.NoSuchElementException

  "Application" should {
    "work from within a browser" in {
      running(TestServer(port, application = FakeApplication(additionalConfiguration = Map("configParam.value" -> 2)), classOf[FirefoxDriver]) {
      .....
      }
    }
  }
在应用程序中以下列方式访问

configParam.value

import scala.concurrent.Future
import play.api.libs.json._
import play.api.Play._
import play.api.libs.ws.Response
import play.api.libs.json.JsObject

object Configuration {
   val configParamValue = current.configuration.getString("configParam.value").get
}

运行play test时,使用的configParam.value是来自application.conf的{​​{1}},而不是FakeApplication中传递的{。}}。

我在这里做错了什么?

1 个答案:

答案 0 :(得分:1)

问题可能是Map传递给additionalConfiguration

您正在传递Int并尝试获取带有“getString”的字符串

尝试更改为:

running(TestServer(port, application = FakeApplication(additionalConfiguration = Map("configParam.value" -> "2")), classOf[FirefoxDriver]) {

请注意"周围的2