我有一个用Java编写的控制器,我想用scala和specs2测试它。我可以使用JUnit测试我的控制器,它工作正常。但我无法用specs2测试它。我跟着the documentation并提到我应该将fakeRequest作为参数传递。但是Java控制器中的方法不接受任何参数,所以我无法使用这种方法。
我该如何测试?只有我能想到的方法是使用与JUnit相同的方法,但是使用specs2并没有带来好处。
答案 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"
}
}
}