我可以在Play Framework 2中使用specs2测试Java控制器吗?

时间:2013-12-11 23:30:33

标签: java scala playframework playframework-2.0 specs2

我有一个用Java编写的控制器,我想用scala和specs2测试它。我可以使用JUnit测试我的控制器,它工作正常。但我无法用specs2测试它。我跟着the documentation并提到我应该将fakeRequest作为参数传递。但是Java控制器中的方法不接受任何参数,所以我无法使用这种方法。

我该如何测试?只有我能想到的方法是使用与JUnit相同的方法,但是使用specs2并没有带来好处。

1 个答案:

答案 0 :(得分:2)

哦,我自己已经弄清楚了。

我可以使用来自play.test.Helpers的帮助器,然后我将它们与specs2匹配器一起使用,它可以按预期工作。

import controllers.routes
import org.specs2.mutable.Specification
import play.test.Helpers._
import play.api.test._

class MyControllerSpec extends Specification {
  "My Controller" should {
    "respond with text/plain content type" in new WithApplication {
      val result = callAction(routes.ref.MyController.index(), fakeRequest())
      contentType(result) mustEqual "text/plain"
    }
  }
}