При разработке приложений для iOS у вас есть два возможных типа тестов, которые вы можете использовать, один для модульного тестирования и один для приемочного тестирования. Они передаются в Xcode соответственно как «Test Target» и «Target Test Target».
В рамках целевого теста вы можете протестировать весь свой код приложения, импортировав его модуль Swift, используя @testable import MyAppName
, а затем записывая модульные тесты с использованием XCTest
, рамки, предоставляемой Apple.
В дополнение к инструментам Apple, сообщество FOSS разработало другие отличные библиотеки для тестирования. В частности, Quick - это среда тестирования, которая обеспечивает синтаксис, подобный мокко.
Когда дело доходит до цели тестирования пользовательского интерфейса, важно сказать следующее: вы можете тестировать поведение своего приложения только через них. Невозможно получить доступ к коду приложения, все делается через прокси, которые имитируют взаимодействие пользователя с пользовательским интерфейсом. То есть, на мой взгляд, по уважительной причине. Те тесты, которые нужно написать с помощью инструментов, которые разрешают взаимодействие с UI, должны быть приемными/функциональными тестами, которые должны проверять поведение приложения. Не имея доступа к коду, это хороший способ избежать злоупотребления этим инструментом.
Интересно, как я могу тщательно проверить методы моего приложения с помощью заглушек и издевается, имитирующий подключения к веб-службам асинхронно и получить себе уверен, что тесты могут быть написаны в ясной форме, создавая спокойствие для моего стареющего тела ,
Углубляясь:
с помощью заглушек и издевается
Из-за природы Свифта делает реальный насмешки весьма трудно. Лучше использовать подделки и парные. В Интернете также много литературы о том, почему использование макетов и заглушек редко является хорошей идеей, например this, this, this и this.
имитирующие подключение к веб-службам асинхронно
После того, как сказал все, что это правда, что иногда гася полезно, например, в случае, если вы выделить. Хорошая библиотека для этого - OHHTTPStubs.
получить себе уверен, что тесты могут быть написаны разборчиво
Я считаю, что есть достаточно инструментов сегодня для поддержки написания четких и эффективных тестов с минимальными усилиями. Остальное зависит от вас, вашей команды и того, как вы создаете приложение. Как и для любого другого языка программирования: D
Если я могу положить здесь бесстыдную плагин, то в начале года я написал a post covering the state of testing in the iOS plaform, с тех пор произошло много нового, но это может быть хорошей отправной точкой, если вы хотите копать глубже.