【问题标题】:Can I test Java controllers with specs2 in Play Framework 2?我可以在 Play Framework 2 中使用 specs2 测试 Java 控制器吗?
【发布时间】:2013-12-30 04:38:37
【问题描述】:
我有一个用 Java 编写的控制器,我想使用带有 specs2 的 Scala 对其进行测试。我可以用 JUnit 测试我的控制器,它工作正常。但我无法用 specs2 对其进行测试。我关注了the documentation,它提到我应该将 fakeRequest 作为参数传递。但是 Java 控制器中的方法不接受任何参数,所以我无法使用这种方法。
如何测试它?我能想到的唯一方法是使用与 JUnit 中相同的方法,但使用 specs2 并没有带来好处。
【问题讨论】:
标签:
java
scala
playframework
playframework-2.0
specs2
【解决方案1】:
哦,我自己想通了。
我可以使用来自 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"
}
}
}