Нестабильные тесты

Нестабильный тест выдает разные результаты для одного и того же кода. Распространенные причины в тестировании API включают в себя: время выполнения (проверка до завершения асинхронной задачи), общее состояние между тестами, данные, оставшиеся от предыдущих запусков, реальные сетевые вызовы, незаполненные случайные данные и зависимость от текущей даты или часового пояса.

Как это работает

Нестабильность диагностируется путем повторного запуска одного и того же коммита до тех пор, пока не воспроизведется ошибка, и сравнения различий. Она устраняется путем устранения источника вариативности: ожидание выполнения условия вместо фиксированного времени, предоставление каждому тесту собственных данных, инициализация генераторов, замораживание часов и замена действующих зависимостей на фиктивные или контролируемые вами песочницы.

Заблуждение

Автоматическая повторная попытка исправляет нестабильный тест. Повторные попытки скрывают симптом и сохраняют причину; они также скрывают реальные периодически возникающие ошибки в продукте — состояние гонки выглядит в точности как нестабильный тест. Изолируйте и исправляйте, а не повторяйте и забывайте.

Попробуйте здесь.

Запрос POST /protocol/v1/jobs возвращает код 202, и задача продолжает выполнение при каждом запросе GET /protocol/v1/jobs/{id} — это хорошее место для отработки ожидания выполнения условия вместо ожидания завершения. Перезапускайте песочницу между запусками, чтобы предотвратить утечку состояния.

Источники

Другие термины

Читать страницу на английском

Все термины · Приёмы тестирования · Все 39 mock REST API

Последнее обновление