Мы используем JUnit для выполнения интеграционных тестов, а также системных интеграционных тестов, которые полагаются на внешние тестовые системы (не обязательно поддерживаемые нашей собственной компанией).
Интересно, куда поместить код, который проверяет, доступна ли система перед запуском тестов? Таким образом, я могу определить, есть ли проблема с сетью или другой проблемой, а не с самим тестом.
JUnit позволяет настроить некоторые части теста в JUnit-Rules. Это хорошая идея настроить службу, которая взаимодействует с внешней системой в рамках правила, и выполнять некоторые базовые проверки («пинг») внешней системы в рамках правила? Или для сохранения состояния и в тесте используйте JUnit accept(rule.isAvailable), чтобы избежать выполнения теста?
Или было бы разумнее поместить этот проверочный код в собственный JUnit Runner?
Или есть еще один способ сделать это? (просто создать несколько утилит?)
Цель состоит в том, чтобы пропустить тесты, если некоторые условия не выполняются, поскольку очевидно, что тесты не пройдут. Я знаю, что это указывает на плохую обработку исключений, но есть много устаревшего кода, который я не могу полностью изменить.
Я пытался найти некоторые статьи самостоятельно, но поисковые запросы ("тест", "внешняя система" и т. д.) выглядят немного неблагодарными.
Благодарность!