Воспроизвести 2 теста Java, play-authenticate и Eclipse JUnit

У меня есть новый проект 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?

1 ответ

Решение

Наконец-то разобрались. Хитрость заключается в создании 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);
        }
    });
}
Другие вопросы по тегам