Я пытаюсь проверить, что представление, возвращенное из ресурса drowpizard, собирается правильно. В частности, представление для добавления пользователя имеет поле, которое позволяет проверять паролем отказ от попытки создать пользователя, если он не отвечает определенным правилам. Представление отлично работает при развертывании и запуске webapp и указании неверного пароля, но когда я пытаюсь выполнить его тестирование, он выдает исключение веб-приложения, в котором нет сообщения для автора сообщения.Тестирование единиц измерения в dropwizard
Мой блок тест довольно прост:
@Test
public void testBadPassword(){
ClientResponse response = null;
try {
response=client().resource("/users").post(ClientResponse.class, createUserParameters);
Status status = response.getClientResponseStatus();
assertEquals(Status.SEE_OTHER, status);
} finally {
if (response != null) {
response.close();
}
}
}
я возвращусь ошибку сервера 500, который погребен в следующем:
javax.ws.rs.WebApplicationException: com.sun.jersey.api.MessageException: A message body writer for Java class com.seeker.stm.resources.views.AddUserView, and Java type class com.seeker.stm.resources.views.AddUserView, and MIME media type text/html was not found
at com.sun.jersey.spi.container.ContainerResponse.write(ContainerResponse.java:285)
at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1448)
Ресурс обработает запрос и формирование мнения и ответы выглядят следующим образом:
@Path("/users")
public class UserResource {
public Object addUser(@FormParam("username") String username,
@FormParam("password") String password,
@FormParam("email") String email){
Set<String> passwordErrors = passwordChecker.checkValidity(password, username, email);
if (!passwordErrors.isEmpty()) {
return new AddUserView(userDAO.getAllActive(), passwordErrors);
}
// ...
}
Я могу понять исключение (th которые он знает, например, StringProvider и ByteArrayProvider, не работают для ответа или представления или что-то в этом роде), но я хотел бы больше узнать, как правильно протестировать ресурс, который может вернуть либо код ответа, либо представление.
Спасибо, я попробую, когда вернусь к работе. – whiterook6
Спасибо, что исправлено это исключение. Теперь я получаю аналогичное исключение из-за отсутствия чтения READER тела сообщения и просмотра пула представлений, похоже, ничего подобного нет. Есть ли другой поставщик, которого мне нужно добавить, или какую-то аннотацию, которую мне нужно предоставить, чтобы получить модульный тест? – whiterook6
Похоже, что Coda вы исправили: https://groups.google.com/forum/#!topic/dropwizard-user/fGjawn1HTzQ –