Предотвратите сбой jUnit, если предположение не выполнено - PullRequest
1 голос
/ 14 мая 2019

При запуске серии тестов с использованием jUnit, можно пропустить тест для некоторых случаев, используя предположения.Однако, если нет случаев, в которых предположение будет выполнено, тест помечается как несостоявшийся.Есть ли способ предотвратить это?

Например, если свойство testTopic передается как vertical_move, должны выполняться все тесты для vertical_move и ни один из тестов для Horizontal_move.В настоящее время я использую предположения, как показано ниже, чтобы пропустить эти тесты.

assumeTrue(TestCons.get("testTopic").contains("horizontal_move"));

Проблема заключается в том, что если предположение не выполняется во всех случаях, тест помечается как неудачный.Я хочу, чтобы это предотвратить.Другими словами, если предположение не выполняется, просто пропустите тест, не провалив его, даже если это предположение никогда не выполняется.Есть способ сделать это?Спасибо.

1 Ответ

1 голос
/ 14 мая 2019

Вы можете использовать @Ignore для пометки тестов, которые должны быть полностью исключены из выполнения, но я не знаю, как вы могли бы определить это из в тестовом случае.

И, честно говоря: я думаю, что вам даже не стоит это пробовать.

Юнит-тесты должны быть простыми. Они существуют, чтобы помочь вам быстро определить ошибку в вашем производственном коде. Но: любая часть «дополнительной логики», которую читатель должен переварить, чтобы понять причину неудачного тестового примера, усложняет задачу.

Таким образом: избегайте использования такой дополнительной логики в ваших тестовых примерах. Напишите тестовые сценарии, которые создают clear setup, а затем утверждают результат, который вы ожидаете именно для этой настройки, и ничего больше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...