我刚刚升级到 Play 2.2,由于 Helpers
已更改,我的测试不再编译。
import org.specs2.mutable.Specification
import play.api.test._
import play.api.test.Helpers._
import play.api.libs.ws._
import play.api.mvc.Results._
class ApplicationSpec extends Specification {
import controllers._
"Application" should {
"test WS logic" in new WithServer {
await(WS.url("http://localhost:3333").get()).status must equalTo(OK)
}
}
}
给出以下编译错误
type mismatch;
[error] found : scala.concurrent.Future[play.api.libs.ws.Response]
[error] required: org.specs2.matcher.Matcher[?]
最佳答案
这只是 play.api.test.Helpers.await
和 org.specs2.matcher.FutureMatchers.await
之间的名称冲突。
您可以更明确地引用播放助手(或重命名您的导入):
Helpers.await(WS.url("http://localhost:3333").get()).status must equalTo(OK)
但是,以下内容可能更好,但尚未将其纳入文档:
https://github.com/playframework/playframework/blob/master/framework/src/play-test/src/main/scala/play/api/test/PlaySpecification.scala
因此,只需在您的测试中扩展
PlaySpecification
而不是 Specification
:import org.specs2.mutable.Specification
import play.api.test._
import play.api.test.Helpers._
import play.api.libs.ws._
import play.api.mvc.Results._
class ApplicationSpec extends PlaySpecification {
import controllers._
"Application" should {
"test WS logic" in new WithServer {
await(WS.url("http://localhost:3333").get()).status must equalTo(OK)
}
}
}
关于playframework-2.2 - Play Framework 2.2 - 功能测试因类型不匹配而失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19230026/