2013-10-07 30 views
4

我剛剛升級到Play 2.2,並且由於Helpers已更改,我的測試不再編譯。Play Framework 2.2 - 功能測試失敗,類型不匹配

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[?] 

回答

6

這是play.api.test.Helpers.awaitorg.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) 
    } 

    } 
} 
+0

我認爲第一個代碼示例應該是Helpers.await(...) – gladed

相關問題