Ответы на ваши конкретные вопросы были бы слишком длинными, чтобы вставить SO-ответ.Тем не менее, один из ваших корневых вопросов, похоже, в чем разница между модульным тестом и тестированием пользовательского интерфейса.Что на можно ответить .
Действительно короткая версия заключается в том, что модульные тесты имеют доступ к коду в вашем приложении (или к любому типу создаваемого вами модуля), а тесты пользовательского интерфейса делают * 1005.* не имеют доступ к коду.
В модульном тесте тестируется только один отдельный класс на тест.Любые объекты, с которыми класс должен взаимодействовать, должны быть заменены поддельными объектами, которые контролирует тест.Если вы не вставляете фальшивые объекты, у вас нет возможности узнать, произошел ли сбой теста из того, что вы действительно пытались проверить, или из того, что он использует.(Следует отметить, что существует также такая вещь, как интеграционные тесты, которые тестируют функции, не выдавая ничего, кроме, возможно, сетевых ответов).
В идеале для модульных тестов вы хотите иметь класс тестовых случаев для каждого класса вваше приложение.Затем в каждом тестовом примере можно сосредоточиться на одном классе и тестировать его как можно более подробно.
Тесты пользовательского интерфейса используют функции доступности различных платформ Apple, чтобы эффективно притворяться пользователем, использующим приложение.Идея состоит в том, что вы используете XCode для записи последовательности действий для выполнения задачи в вашем приложении (возможно, для добавления элемента todo), а затем редактируете код, который XCode генерирует для вас для тестирования конкретных вещей, например, есть ли в табличном представлении один такойэлемент todo и содержит ли эта ячейка правильный заголовок.
Для начала вам нужно будет использовать функцию записи Xcode для тестов пользовательского интерфейса, так как вначале код будет выглядеть немного чуждо вам.Это связано с тем, что тесты пользовательского интерфейса не имеют доступа к коду приложения, поэтому оно не может запросить выход, оно должно найти элемент с доступностью (ваша жизнь станет намного проще, если вы добавите метки доступности к как можно большему количествуЭлементы пользовательского интерфейса, насколько это возможно).
Чтобы получить более подробное представление о модульном тестировании и тестировании пользовательского интерфейса с помощью Xcode, есть несколько постов и книг в блоге:
https://www.raywenderlich.com/709-ios-unit-testing-and-ui-testing-tutorial https://medium.com/flawless-app-stories/a-complete-list-of-articles-on-unit-testing-with-swift-from-2017-9be8f046ef25 Книги
Я уверен, что есть и другие ресурсы, но они должны помочь вам начать.Статья Рэя Вендерлиха должна дать вам хороший обзор и позволит сформулировать более целенаправленные вопросы для Google и SO.