Похоже, что mockbean, которое возвращает void, не выдает ошибку при вызове внутри объекта тестирования.Я могу позвонить на улицу, и это приведет к ошибке.Что-то не так с тем, как я это использую?
//some imports ...
@RunWith(SpringRunner.class)
@SpringBootTest(classes={ MessagingController.class })
public class MessagingControllerTest {
@Autowired
private MessagingController controller;
@MockBean
private RabbitMessagingTemplate rabbitMessagingTemplate;
@Test
public void testPublishMessageConversionException() {
//given:
Message message = new Message(null, null, null);
//when:
doThrow(MessageConversionException.class).when(rabbitMessagingTemplate).convertAndSend(any());
ResponseEntity<?> response = controller.publish(message);
// rabbitMessagingTemplate.convertAndSend() // this throws the error
//then:
assertThat(response).isNotNull();
assertThat(response.getStatusCode()).isEqualTo(HttpStatus.BAD_REQUEST);
verify(rabbitMessagingTemplate).convertAndSend(message.getExchange(), message.getRoutingKey(), message.getPayload());
}
...
}