2015-09-18 3 views
1

Принадлежа к миру веб-разработки, я привык к мощным методам тестирования и инструментам, таким как Chai, Sinon, Mocha, Jasmine, чтобы назвать несколько, а также широкую поддержку и сообщества, хорошо написанные книги с глубокими знаниями. Есть все возможные случаи, которые я могу себе представить, которые покрыты существующими инструментами.Как тщательно протестировать приложение iOS, созданное с помощью Swift?

Теперь, изучая развитие iOS с Swift, интересно, как я могу полностью протестировать методы своего приложения, используя заглушки и издевки, асинхронно имитируя подключение к веб-сервисам и убедившись, что тесты могут быть написаны четким образом, создавая мир ума для моего стареющего тела.

Я нахожу, что сообщество не так широко развивается в iOS, особенно Swift, в результате того, что язык не так долго на ландшафте.

Пожалуйста, поделитесь рекомендациями по тестированию, которые помогут мне создать надежные приложения, которые предсказуемо ведут себя.

ответ

0

При разработке приложений для 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, с тех пор произошло много нового, но это может быть хорошей отправной точкой, если вы хотите копать глубже.

Смежные вопросы