У меня есть следующий ресурс: < /p>
@Path("/config")
@RequiredArgsConstructor
public class Resource {
private final Service service;
@PUT
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public Uni putConfig(List configs) {
return service.updateConfig(configs)
.map(ignored -> Response.noContent().build())
.onFailure().recoverWithItem(ignored -> Response.serverError().build());
}
}
< /code>
и соответствующие тесты: < /p>
@QuarkusTest
class ResourceTest {
@InjectMock
Service service;
@Test
void putConfigOk() {
final var request = mockConfig();
when(service.updateConfig(request)).thenReturn(Uni.createFrom().voidItem());
given()
.body(request)
.contentType(MediaType.APPLICATION_JSON)
.when().put("/config")
.then()
.statusCode(204);
}
@Test
void putConfigFails() {
final var request = mockConfig();
when(service.updateConfig(request)).thenReturn(Uni.createFrom().failure(RuntimeException::new));
given()
.body(request)
.contentType(MediaType.APPLICATION_JSON)
.when().put("/config")
.then()
.statusCode(500);
}
private List mockConfig() {
return List.of(new Config());
}
}
< /code>
Первый тест работает отлично, возвращает 204. Однако второй тест все еще возвращает 204. Я не знаю, что делаю не так. На самом деле, работающий тест с покрытием показывает, что сбой части никогда не покрывается ... есть идеи?
Подробнее здесь: https://stackoverflow.com/questions/797 ... ve-failure