🦀 Rust и Property Testing - тестируй не примеры, а правила.
Обычные unit-тесты проверяют несколько заранее написанных сценариев.
Но есть проблема:
ты тестируешь только те случаи, о которых подумал.
Property tests работают иначе.
Вместо конкретных значений ты задаёшь инварианты (правила), а библиотека:
- генерирует тысячи случайных входных данных
- проверяет крайние случаи
- находит баги, о которых ты даже не подозревал
Пример идеи:
- сортировка → результат всегда отсортирован
- encode → decode → исходные данные
- длина строки после trim не увеличивается
Ты описываешь правило.
Тест сам ищет, где код ломается.
Почему это мощно:
- ловит edge cases
- повышает надёжность критичной логики
- отлично подходит для парсеров, алгоритмов, финансовых расчётов
- экономит время на ручное покрытие
В Rust для этого есть proptest:
https://proptest-rs.github.io/proptest/proptest/getting-started.html
Post #1199
4.87K

- 👍 25
- ❤ 8
- 🥰 3
- 🤗 2
- 🤯 1
- 😱 1