DevPrep

Все темы › Тестирование программного обеспечения

Snapshot-тесты: когда полезны и как не утонуть в ложных падениях?

Middle PRO

Суть

Snapshot-тест рендерит компонент или экран в картинку (или текстовый дамп) и сравнивает её с эталоном, который лежит в репозитории. Первый прогон записывает эталон, последующие падают при расхождении и прикладывают diff. Это дешёвый способ поймать визуальные регрессии — съехавший отступ, обрезанный текст в длинной локализации, сломанную тёмную тему, — которые unit-тест не видит, а UI-тест проверяет дорого.

Стандарт де-факто — swift-snapshot-testing от Point-Free: стратегии .image, .recursiveDescription, .dump, поддержка UIKit и SwiftUI, XCTest и Swift Testing.

Продолжение ответа с кодом и уточняющими вопросами интервьюера — в приложении DevPrep.

Полный ответ — в DevPrep

Потренируйтесь перед собеседованием

В DevPrep эти ответы превращаются в задачи на минуту: что напечатает код, найди баг, пробное собеседование. По задаче в день.

Скачать DevPrep в App Store