- PVSM.RU - https://www.pvsm.ru -

Hypothesis

Добро пожаловать в Hypothesis!

Hypothesis [1] представляет собой библиотеку Python для создания модульных тестов, которые попроще писать и более эффективны при запуске, обнаруживая граничные случаи в коде, который вы бы не подумали искать. Он стабильный, мощный и легко добавляется в любой существующий набор тестов.

Алгоритм его работы, позволяя вам писать тесты, которые утверждают, что что-то должно быть истинным для каждого случая, а не только то, о чём вы догадались подумать.

Нормальный модульный тест — это что-то вроде следующего:

  1. Подготовьте некоторые данные.
  2. Выполнените некоторые операции с данными.
  3. Подтвердите результат.

Hypothesis позволяет писать тесты, которые выглядят следующим образом:

  1. Для всех данных, соответствующих некоторым спецификациям.
  2. Выполните некоторые операции с данными.
  3. Подтвердите результат.

Это часто называют property based testing, и было популяризировано в библиотеке Haskell Quickcheck [2]

Он работает путем генерации случайных данных, соответствующих вашей спецификации и проверки, что ваша функция или метод все еще держится и не падает в этом случае. Если он найдет пример, где это не так, он примет этот пример и сократит его размер, упрощая его, пока не найдет гораздо меньший пример, который все еще вызывает проблему. Затем он сохранит этот пример для последующего, так что как только он нашел проблему с вашим кодом он не забудет
этого в будущем.

Написание тестов в такой форме обычно состоит из решения о гарантиях, по которым ваш код должен делать make — properties, которые должны всегда иметь значение true, независимо от того, что мир преподнесет вам. Примерами таких гарантий могут быть:

  • Ваш код не должен генерировать исключение или должен вызывать только особый тип исключения (это работает особенно хорошо, если у вас много внутренних assert-ов).
  • При удалении объекта он больше не отображается.
  • Если вы сериализуете и затем десериализуете значение, вы получите то же значение обратно.

Теперь вы знаете основы того, что делает hypothesis, остальное в документации [3] поможет вам понять, как и почему. Она разделена на разделы, которые вы можете увидеть в боковой панели (или в верхней части меню, если вы на мобильном телефоне). Но вероятнее всего, вы хотите начать с Quick start guide [4] или Краткого руководства по началу работы [5], которое даст вам работающие примеры использования hypothesis и подробный план того, что вам нужно знать, чтобы начать тестирование кода с ним, или проверить некоторые из introductory articles [6].

Автор: AlekSandrDr

Источник [7]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/python/278613

Ссылки в тексте:

[1] Hypothesis: http://hypothesis.works

[2] Haskell Quickcheck: https://hackage.haskell.org/package/QuickCheck

[3] документации: https://hypothesis.readthedocs.io/en/latest/index.html

[4] Quick start guide: https://hypothesis.readthedocs.io/en/latest/quickstart.html

[5] Краткого руководства по началу работы: https://habrahabr.ru/post/354144/

[6] introductory articles: http://hypothesis.works/articles/intro/

[7] Источник: https://habrahabr.ru/post/354134/?utm_campaign=354134