Как я могу получить доступ к своим быстрым классам из моих тестов пользовательского интерфейса?
У меня есть тест пользовательского интерфейса, например, так:
func testHome(){
if(isRedOrange.clear()){
//code
}
}
Как мне получить доступ к моей функции isRedOrange.clear из моего файла isRedOrange.swift из моих тестов пользовательского интерфейса?
4 ответа
Тесты пользовательского интерфейса имеют черный квадрат, поэтому вы не можете получить доступ к своему коду.
Ты можешь использовать @testable import
в модульных тестах, так что полный доступ будет предоставлен. Когда вы запускаете UI Tests, это не работает, потому что во время UITest ваш тестовый класс не может получить доступ к коду вашего приложения.
Из документов Apple:
Тестирование пользовательского интерфейса отличается от модульного тестирования в основных отношениях. Модульное тестирование позволяет вам работать в рамках вашего приложения и позволяет вам использовать функции и методы с полным доступом к переменным и состоянию вашего приложения. Тестирование пользовательского интерфейса выполняет пользовательский интерфейс вашего приложения так же, как и пользователи, не имеющие доступа к внутренним методам, функциям и переменным вашего приложения. Это позволяет вашим тестам видеть приложение так же, как пользователь, и выявлять проблемы пользовательского интерфейса, с которыми сталкиваются пользователи.
Вы должны достичь всего, используя .tap()
на элементах. .accessibilityIdentifier
поможет вам получить правильный элемент
Перейти к настройкам проектов -> Выбрать цель uitests -> вкладка фаз сборки -> добавить файл swift для компиляции исходников
Вопрос не имеет смысла. У вас нет доступа к коду вашего приложения в тесте пользовательского интерфейса. Если вы хотите получить доступ к своему коду, напишите модульный тест.
Вам необходимо импортировать ваш основной модуль (проект) в тесты:
- Убедитесь, что вы установили
ENABLE_TESTABILITY
вBuild Settings
основной цели проекта, чтобы правда.
- Чтобы импортировать его в тесты, позвоните
@testable import MAIN_TARGET_NAME
в вашем файле UITests.