我有一个新的Play 2项目和play-authenticate。我为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中工作?
发布于 2012-10-22 15:50:41
终于解决了这个问题。诀窍是创建具有自定义配置的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);
}
});
}https://stackoverflow.com/questions/13006419
复制相似问题