Snapshot-тесты: когда полезны и как не утонуть в ложных падениях?
Суть
Snapshot-тест рендерит компонент или экран в картинку (или текстовый дамп) и сравнивает её с эталоном, который лежит в репозитории. Первый прогон записывает эталон, последующие падают при расхождении и прикладывают diff. Это дешёвый способ поймать визуальные регрессии — съехавший отступ, обрезанный текст в длинной локализации, сломанную тёмную тему, — которые unit-тест не видит, а UI-тест проверяет дорого.
Стандарт де-факто — swift-snapshot-testing от Point-Free: стратегии .image, .recursiveDescription, .dump, поддержка UIKit и SwiftUI, XCTest и Swift Testing.
Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.
Полный ответ — в DevPrep