2013-03-13 38 views
1

我正在使用Play 2.0.3(Java)並編寫了以下代碼。由於我的演員是異步的,我嘗試做測試,如下所示,當到AsyncResult到結果類型轉換:即使在結果類型已被轉換爲結果時,獲取「無法從play.api.mvc.AsyncResult類型的結果中提取狀態碼」結果

Result result = new Result() { 
     @Override 
     public play.api.mvc.Result getWrappedResult() { 
      return ((play.api.mvc.AsyncResult) callAction(controllers.routes.ref.Dashboard.index(), 
        authenticatedFakeRequest(lenderUser.getId())).getWrappedResult()).result().await().get(); 
     } 
    }; 

    assertThat(Integer.valueOf(status(result)), is(Integer.valueOf(OK))); 

此代碼在另一組的測試中,我寫了工作,但是當我用它在這個特殊的情況下, ,它會引發以下運行時異常。我完全無能爲力,因爲它爲其他測試工作,而不是在這裏。在進入上述語句之前,我檢查了結果的實例類型是Result類型而不是AsyncResult。我非常感謝幫助,因爲我是Pl​​ay新手,無法在其Google羣組上找到答案。

java.lang.RuntimeException: Cannot extract the Status code from a result of type play.api.mvc.AsyncResult 
at scala.sys.package$.error(package.scala:27) 
at play.core.j.JavaResultExtractor$.getStatus(JavaResults.scala:38) 
at play.core.j.JavaResultExtractor.getStatus(JavaResults.scala) 
at play.test.Helpers.status(Helpers.java:122) 
at functional.controllers.LenderDashboardTest.dashboardPageHasNoControlsToAccessOtherTeamMembersInboxes(LenderDashboardTest.java:97) 

回答

0

我剛剛遇到同樣的問題,並且它似乎更新播放到2.1已解決了我。希望這可以幫助

+0

感謝但升級不是我的選擇,因爲它需要一個漫長的過程才能簽署。 – 2013-03-21 17:26:03