Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.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 对Play框架控制器进行单元测试_Scala_Playframework_Specs2 - Fatal编程技术网

Scala 对Play框架控制器进行单元测试

Scala 对Play框架控制器进行单元测试,scala,playframework,specs2,Scala,Playframework,Specs2,我已经写了这个控制器,它可以在浏览器上完美地工作 package controllers import play.api._ import play.api.mvc._ class Application extends Controller { val productMap = Map(1 -> "Keyboard", 2 -> "Mouse", 3 -> "Monitor") def listProductsXML() = Action { Ok(vi

我已经写了这个控制器,它可以在浏览器上完美地工作

package controllers
import play.api._
import play.api.mvc._

class Application extends Controller {

  val productMap = Map(1 -> "Keyboard", 2 -> "Mouse", 3 -> "Monitor")

  def listProductsXML() = Action {
    Ok(views.xml.products(productMap))
  }
}
路线定义为:

GET     /listProducts.xml              controllers.Application.listProductsXML
现在我正在为这个控制器编写一个单元测试

import controllers._
import play.api.test.FakeRequest
import play.api.test.Helpers._
import org.specs2.mutable._
import play.api.test.WithApplication

class ControllerTest extends Specification {
    "controllers.Application" should {
        "respond with xml for /listproducts.xml requests" in new WithApplication {
            val result = controllers.Application.listProductsXML()(FakeRequest())
            status(result) must equalTo(OK)
            contentType(result) must beSome("application/xml")
            contentAsString(result) must contain("products")
        }
    }
}
当我仅使用
激活器测试运行此测试时,我得到一个错误

[foo_play] $ test-only ControllerTest
[error] ProductSpec.scala:10: object Application is not a member of package controllers
[error] Note: class Application exists, but it has no companion object.
[error]             val result = controllers.Application.listproductsXML()(FakeRequest())
[error]                                      ^
[error] one error found
[error] (test:compileIncremental) Compilation failed
[error] Total time: 1 s, completed Jun 19, 2015 3:48:14 PM
尝试替换:

controllers.Application.listProductsXML()(FakeRequest())
与:

在播放2.4之前,控制器曾经是对象。从游戏2.4开始,鼓励他们改为班级

new controllers.Application().listProductsXML()(FakeRequest())