В мире Python есть инструменты, которые меняют сам подход к тестированию. Один из них — Hypothesis, библиотека для property-based тестирования. На первый взгляд кажется, что это просто альтернатива pytest или unittest, но на деле Hypothesis идёт гораздо дальше — она заставляет код доказывать свою корректность на бесконечном множестве входных данных. Вместо того чтобы писать десятки ручных тестов с заранее подобранными входными данными, Hypothesis предлагает описывать свойства, которым должен удовлетворять код.
Например, мы знаем, что функция сортировки должна возвращать отсортированный список, где порядок элементов не нарушен. Мы не обязаны вручную подбирать данные — библиотека сделает это сама: from hypothesis import given, strategies as st
@given(st.lists(st.integers()))
def test_sort_correct(lst):
assert my_sort(lst) == sorted(lst) 📦 Hypothesis сгенерирует тысячи случайных списков, включая: Обычные тесты охватывают лишь те случаи, которые мы сами смогли придумать. Hypothesis ж