2012-10-22 41 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); 
     } 
    }); 
}