0

play-authenticateを使用した新しいPlay2プロジェクトがあります。RESTAPIの簡単なテストケースをいくつか作成しました。テストはコンソールで正常に合格しますが、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でそのようなテストを機能させることができましたか?

4

1 に答える 1

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);
        }
    });
}
于 2012-10-22T07:50:40.680 に答える