Концепции
Короткий глоссарий терминов, используемых по всему сайту, в порядке, в котором вы обычно их встречаете.
Property Закон о вашем коде, выраженный тест-методом под #[Property]: «для любого входа такой формы это утверждение верно». См. Быстрый старт.
Generator / arbitrary Нечто, умеющее производить случайные значения заданной формы и минимизировать их. Gen::intBetween(0, 100) — генератор; возвращаемый им объект реализует ArbitraryInterface. См. Генераторы.
Run (прогон) Одно выполнение тела property с одним набором сгенерированных аргументов. #[Property(runs: 200)] запрашивает 200 успешных прогонов — про то, что не считается, см. «discard» ниже.
Discard (отброс) Прогон, отброшенный через Assume::that(false), потому что precondition не выполнилась. Отброшенные попытки не расходуют runs; они повторяются, пока не превышен maxDiscards.
Seed Целое число, детерминированно управляющее random-фазой property. Два прогона с одним seed генерируют идентичную последовательность значений — именно это делает сообщённое падение воспроизводимым: #[Property(seed: 7382910)].
Falsify (фальсифицировать) То, что происходит, когда сгенерированный (или явный) вход ломает утверждение property. Раннер перехватывает падение и передаёт вход shrinker'у.
Shrink / shrinking Минимизация фальсифицирующего входа спуском по дереву меньших кандидатов значения в поисках простейшего, который всё ещё падает. См. Shrinking — как строится само дерево и почему гарантированно завершается.
Counterexample Шринкнутый (минимальный) вход, фальсифицировавший property, плюс исходный вход, падение и статистика прогонов/shrink-шагов — несёт CounterExample, сообщается внутри PropertyViolationException.
Classify / coverage Запись, каким «видом» входа оказался каждый прогон (even, empty, boundary, …), чтобы проверить, что генераторы реально достигают интересных кейсов, а не проходят впустую. См. Распределение.
Regression corpus (корпус регрессий) Опциональная персистентная память (PROPERTY_DB) прошлых падений, реплеящаяся перед random-фазой на каждом прогоне, чтобы исправленный баг не мог незаметно вернуться. См. Корпус регрессий.
Command / state machine Терминология для тестирования последовательности операций, а не одиночного входа — сгенерированный список Command, прогоняемый и против реальной системы, и против упрощённой модели в памяти. См. State machine: концепции.