Skip to content

Instantly share code, notes, and snippets.

@navartis
Last active April 16, 2020 12:10
Show Gist options
  • Save navartis/faeed1b234490abd0d6a6618e38da890 to your computer and use it in GitHub Desktop.
Save navartis/faeed1b234490abd0d6a6618e38da890 to your computer and use it in GitHub Desktop.

Релевантные доклады:

Про то зачем и какие подходы использовать для тестирования верстки снапшотами экранов:
Зачем тестировать iOS вёрстку – Екатерина Батеева

Очень наглядный доклад про то как стоит и как не надо размечать интерфейс с использованием UIKit Accessibility:
Константин Мордань – Settings ➙ General ➙ Accessibility

UI тестов на осноове UIKit Accessibility не слишком удобный инструмент и их производительнось очень сильно зависит от количества элементов на экране.
Артем подробно рассказал какие твики надо использовать при UI тестировании приложения с использованием UIKit Accessibility:
Нативные UI тесты, которые работают – Артём Разинов

Писать коробочные тесты для приложения с большим количеством экранов черевато усложненние тестов и большим количеством стабов.
Пара докладов о том как можно разбить приложение на мини приложения по потокам экранов:
Модуляризация большого iOS приложения
Навигация в большом iOS приложении

Статья про инструментарий для тестирования отдельных UI элементов:
Snapshot testing self-sizing table view cells

Библиотеки:

Для тестирования экранов и элементов снапшотами:
iOSSnapshotTestCase (previously FBSnapshotTestCase)

Для стаббинга HTTP API сервисов:
SBTUITestTunnel

* Откровенно говоря, у меня есть вопросы к качеству библиотеки.
** Она имеет архитектурный недостаток выражающийся в том, что зарегистрировать стабы можно только после запуска приложения. Таким образом нельзя гарантированно застабать респонсы стартующие при запуске приложения. В приложении YouDo, благодаря архитектурным решениям заложенным ранее, удалось избежать этой проблемы. Но мы планируем перейти на что то типа swifter
*** Для того что бы не нарушить безопасность приложения при подключении SBTUITestTunnel к приложению важно отключить его из сборки для AppStore. При использовании CocoaPods это можно сделать следующим образом: pod 'SBTUITestTunnelServer', :configurations => ["Debug"].
Дополнительно можно написать скрипт для CI, проверяющий отсутсвие этого фреймворка в сборки приложения.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment