Об этом проекте
Hypothesis — это библиотека property-based тестирования для Python. Вместо написания тестов с фиксированными входными данными разработчики описывают диапазон входных данных, которые должна обрабатывать функция, а Hypothesis случайным образом генерирует тестовые случаи из этого диапазона — включая граничные случаи, которые разработчик мог не предусмотреть.
Основной рабочий процесс использует декоратор @given и модуль strategies. Например, тест можно записать как @given(st.lists(st.integers())), чтобы автоматически генерировать списки целых чисел и проверять, что пользовательская функция сортировки соответствует встроенной функции sorted() в Python. Такой подход позволяет находить ошибки и граничные случаи, которые могли бы остаться незамеченными при ручном написании тестов.
Когда Hypothesis обнаруживает падающий тест, он не сообщает произвольный неправильный вход. Вместо этого он упрощает падающий случай до最 простого возможного варианта, значительно облегчая отладку. Например, если функция сортировки неправильно удаляет дубликаты входных данных, Hypothesis сообщает о минимальном падающем случае, например ls=[0, 0], а не о большом случайном списке.
Установка выполняется простой командой pip install hypothesis. Доступны дополнительные опциональные пакеты для расширения функциональности. В проекте присутствуют документация, веб-сайт и раздел сообщества для участников и пользователей.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.