2012-10-22 81 views
0

我有一個新的Play 2項目與播放認證。我爲REST API編寫了一些簡單的測試用例。測試在控制檯上通過很好,但我無法讓其中的一些通過Eclipse。播放2 Java,播放認證和Eclipse JUnit測試

@Test 
public void testWithoutAuth() { 
    running(testServer(3333), new Runnable() { 
    @Override 
    public void run() { 
     Response response = WS.url("http://localhost:3333/secretarea").get().get(); 
     assertThat(response.getStatus()).isEqualTo(FORBIDDEN); 
    } 
    }); 
} 

這個例子通過在控制檯上正常,但在Eclipse中失敗,並響應錯誤代碼500。它看起來像應用程序設置是不正常(如我自己AuthProvider未找到)。有沒有人設法在Eclipse中得到這樣的測試?

回答

0

最後整理了一下。訣竅是使用自定義配置創建FakeApplicatio。在我的情況下,設置是這樣的:

@Test 
public void testWithoutAuth() { 
    List<String> plugins = new ArrayList<String>(); 
    plugins.add("be.objectify.deadbolt.DeadboltPlugin"); 
    plugins.add("service.MyUserServicePlugin"); 
    plugins.add("providers.MyUsernamePasswordAuthProvider"); 

    FakeApplication fa = fakeApplication(new HashMap<String,String>(), plugins); 

    running(testServer(3333, fa), new Runnable() { 
     @Override 
     public void run() { 
      Response response = WS.url("http://localhost:3333/secretarea").get().get(); 
      assertThat(response.getStatus()).isEqualTo(FORBIDDEN); 
     } 
    }); 
}