Должен ли я утверждать одинаковые значения в каждом тесте?

0
задан oneor0 15 January 2019 в 09:35
поделиться

1 ответ

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

То, как вы написали свои тесты, не даст вам наилучшей возможной поддержки. Вы собрали много утверждений в одну тестовую функцию. Поэтому тестовые функции не будут работать по многим различным причинам, и, когда вы увидите, что одна из функций не работает, вам придется провести подробный анализ или использовать отладку, чтобы выяснить, по какой причине она потерпела неудачу. Когда ваши тесты проверяют аспекты избыточно (как вы задали в своем вопросе), вы делаете их еще менее конкретными, что усугубляет проблему.

Следовательно, каждый тест должен проверять один конкретный аспект, так что провал теста дает наиболее конкретную информацию. Это достигается сочетанием следующих двух принципов:

  • Каждый тест должен проверять один конкретный аспект.
  • Не должно быть избыточных тестов для одного и того же аспекта.

Превращение каждого утверждения в собственный тест может быть удобно выполнено с помощью так называемых параметризованных тестов. Некоторые подсказки для Python можно найти в этом вопросе: Как генерировать динамические (параметризованные) модульные тесты в Python?

0
ответ дан Dirk Herrmann 15 January 2019 в 09:35
поделиться
Другие вопросы по тегам:

Похожие вопросы: