- PVSM.RU - https://www.pvsm.ru -
Hypothesis [1] представляет собой библиотеку Python для создания модульных тестов, которые попроще писать и более эффективны при запуске, обнаруживая граничные случаи в коде, который вы бы не подумали искать. Он стабильный, мощный и легко добавляется в любой существующий набор тестов.
Алгоритм его работы, позволяя вам писать тесты, которые утверждают, что что-то должно быть истинным для каждого случая, а не только то, о чём вы догадались подумать.
Нормальный модульный тест — это что-то вроде следующего:
Hypothesis позволяет писать тесты, которые выглядят следующим образом:
Это часто называют 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
Нажмите здесь для печати.