Интеграционный тест в библиотеке с использованием пользовательского интерфейса или модульного тестирования? - PullRequest
0 голосов
/ 08 июня 2018

Существует библиотека iOS (SDK), для которой я должен написать интеграционные тесты.Эта библиотека используется в клиентских приложениях iOS как библиотека, а не как отдельное приложение.

Я нашел 2 одинаково хороших мнения о том, как я буду подходить к написанию интеграционных тестов.

  1. Используйте тестирование пользовательского интерфейса XCode и тестируйте сквозную интеграцию библиотеки с образцом клиентского приложения.Клиентское приложение будет использовать все функции библиотеки.Таким образом, тестирование пользовательского интерфейса может показать, как библиотека интегрируется с клиентским приложением.

  2. Использовать каркас модульного тестирования.Тесты будут написаны внутри самой библиотеки.Клиентское приложение вообще не нужно.Тесты будут выполняться для нескольких классов, чтобы увидеть, как они интегрируются между собой.

Что вы предлагаете в качестве правильного подхода?

1 Ответ

0 голосов
/ 15 июня 2018

Тестирование пользовательского интерфейса выполняется медленно и дорого (с точки зрения времени).Их следует использовать только в качестве способа получения тестового покрытия, когда его невозможно получить другими способами, которые быстрее выполняются и проще в обслуживании.

Если ваша библиотека не имеет пользовательского интерфейсаВ любом случае, нет никаких причин вводить один только для запуска тестов пользовательского интерфейса.Было бы более разумно использовать вариант 2, как описано выше.

Единственным предостережением к этому будет то, что пример клиентских приложений может быть очень полезен для ручного тестирования при внесении изменений или регрессионного тестирования после внесения изменений.Значение этого будет зависеть от того, что находится в вашей библиотеке.Если вы создадите пример приложения, то хорошей идеей будет написать один или два теста пользовательского интерфейса, чтобы убедиться, что оно не регрессирует и не ломается при внесении изменений.Это особенно ценно, если вы не используете его очень часто.

...