Как стать автором
Обновить

Hypothesis

Время на прочтение2 мин
Количество просмотров5.3K

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


Эта статья является переводом страницы Welcome to Hypothesis! взятой из официального руководства.


*Прим. переводчика:*

Я не смог найти какой то полезной информации по использованию Гипотезы на русском языке кроме выступления 14 дек. 2017 г. Александра Шорина на "Moscow Python Meetup 50"


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


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


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


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

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


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

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


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


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


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

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


Дальше

Теги:
Хабы:
Всего голосов 22: ↑15 и ↓7+8
Комментарии11

Публикации

Истории

Работа

Python разработчик
189 вакансий
Data Scientist
92 вакансии

Ближайшие события

19 августа – 20 октября
RuCode.Финал. Чемпионат по алгоритмическому программированию и ИИ
МоскваНижний НовгородЕкатеринбургСтавропольНовосибрискКалининградПермьВладивостокЧитаКраснорскТомскИжевскПетрозаводскКазаньКурскТюменьВолгоградУфаМурманскБишкекСочиУльяновскСаратовИркутскДолгопрудныйОнлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн
24 – 25 октября
One Day Offer для AQA Engineer и Developers
Онлайн
25 октября
Конференция по росту продуктов EGC’24
МоскваОнлайн
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань