Как я могу получить доступ к своим быстрым классам из моих тестов пользовательского интерфейса?

У меня есть тест пользовательского интерфейса, например, так:

    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 основной цели проекта, чтобы правда.

enable_testability

  • Чтобы импортировать его в тесты, позвоните @testable import MAIN_TARGET_NAME в вашем файле UITests.

Другие вопросы по тегам