У меня есть проект, в котором у меня есть тесты, в которых я намеренно вызываю проблему, а затем проверяю, отвечает ли код так, как я хочу. Для этого я хочу убедиться, что исключения не только являются правильным классом, но и должны содержать правильное сообщение.
Так что в одном из моих существующих (junit 4) тестов у меня есть кое-чтопримерно так:
public class MyTests {
@Rule
public final ExpectedException expectedEx = ExpectedException.none();
@Test
public void testLoadingResourcesTheBadWay(){
expectedEx.expect(MyCustomException.class);
expectedEx.expectMessage(allOf(startsWith("Unable to load "), endsWith(" resources.")));
doStuffThatShouldFail();
}
}
В настоящее время я изучаю полную миграцию на junit 5, который больше не поддерживает @ Rule и теперь имеет assertThrows, который, кажется, заменяет это.
То, что я не смог выяснить, как написать тест, который проверяет не только выбрасываемое исключение (класс), но и сообщение, прикрепленное к этому исключению.
Как правильно написать такой тест в Junit 5?