... мой тест не вызывает исключение, но приложение-потребитель, которое прослушивает сообщение, созданное моим тестом, вызывает исключение.
JUnit не может перехватывать исключения, которые не генерируются текущий стек или тот, который не соответствует тесту.
Звучит так, как будто вы проводите модульное тестирование не в том месте или на неправильном уровне детализации.
Поведение ( исключение) не является поведением класса, который вы тестируете. Это поведение потребительского приложения. Таким образом, проверка на выдачу исключения должна проводиться в модульном тесте для потребительского приложения.
Модульный тест для этого класса (производителя) должен заключаться в том, что он генерирует сообщения такого типа это будет / должно генерировать исключение. Вероятно, следует обратиться к «макету» для потребительского приложения, которое захватывает сообщения для проверки вашим тестом.
Модульный тест для потребительского приложения также должен принимать сообщения от " издеваться над продюсером. В этом тесте вы проверяете, что выбрасывается соответствующее исключение.
Вы также можете проверить это на уровне интеграционного теста, но затем вы можете тестировать, что приложение потребителя (например, ) запись ошибки в свой файл журнала в сценарии, который должен привести к такому поведению. Или, может быть, вам не нужно проверять это.