Deterministic testing — тесты которые дают одинаковый результат при каждом запуске. Concurrent код по умолчанию недетерминирован — порядок горутин непредсказуем. Как добиться детерминизма: 1) Контролируй время через clock interface. 2) Контролируй random через seed. 3) Используй каналы для синхронизации вместо sleep. 4) Сортируй результаты перед сравнением если порядок не важен. 5) Мокируй внешние зависимости. Flaky test — тест который иногда проходит, иногда нет — это недетерминированный тест. Каждый flaky test подрывает доверие ко всему test suite.
Что такое deterministic testing?
Middle+
313 просмотровAFK Offer AI
Что такое goroutine dump?