можно использовать тест Junit в качестве предварительного условия для другого теста Junit - PullRequest
2 голосов
/ 28 октября 2011

У меня есть тест jUnit (назовем его T1), в котором я использую утверждение.Чтобы это утверждение имело какое-либо значение, мне нужен валидатор для того, чтобы это утверждение было правильным.

Для валидатора у меня есть тест (T2) в другом тестовом комплектеМогу ли я как-то сделать T2 предварительным условием для T1.

Если это невозможно, было бы возможно, если бы T1 и T2 находились в одном наборе?

Ответы [ 3 ]

2 голосов
/ 28 октября 2011

Я нашел это в этой теме:

Как указать тестовые зависимости JUnit?

кажется, есть расширение для JUnit, которое позволяет описывать зависимости между тестами JUnit:

https://github.com/junit-team/junit.contrib/tree/master/assumes

1 голос
/ 28 октября 2011

Вы думаете о пропуске юнит-тестов, когда предварительное условие не выполняется.Пропуск модульных тестов по кодированной логике опасен, потому что вы не увидите, есть ли какая-либо проблема, а ваш код даже не получит тестовое покрытие.Лучше провалить больше тестов, когда фундаментальный кусок сломан, чем прятать ошибки.Обратите внимание, что речь идет о модульных тестах, которые должны быть независимыми и тестировать небольшие части программного обеспечения.

Вы можете использовать валидатор Etalon, который не является частью производственного кода, но должен быть простым тестом.утилита, которая не мешает тестам запускаться точно.Хуже всего то, что в вашем коде могут быть другие ошибки, не связанные с валидатором, которые могут быть отложены до появления только потому, что тестовый код пропускает критические части кода из-за предусловия.

Если вы хотитечтобы провести интеграционное или функциональное тестирование в режиме реального времени, вы должны рассмотреть возможность использования даже другой среды тестирования, чем JUnit.В интеграционном тестировании иногда имеет смысл пропустить остальные тесты и прекратить злоупотреблять средой интеграции в течение нескольких минут / часов после однозначно испорченного начала, но в модульном тестировании главное то, что каждый фрагмент кода должен получить контроль.

Конечно, вы также можете взломать предварительные условия в JUnit, например, выполнить сборку в приспособлении @ BeforeClass / setUp или вставить в тест вилки 'if', но они вас обманут.

0 голосов
/ 28 октября 2011

вы можете прокомментировать T1 с объяснением, что он полагается на прохождение T2 и что, если T2 также терпит неудачу, это должно быть исправлено сначала, прежде чем T1 решается

...