我有一个带Play-authenticate的新Play 2项目。我为REST API编写了一些简单的测试用例。测试在控制台上传递良好,但是我无法在Eclipse中传递一些。
@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 :(得分: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);
}
});
}