Тестирование пользовательского интерфейса относительно значения атрибута iOS / Swift - PullRequest
0 голосов
/ 07 мая 2019

Я пишу тесты пользовательского интерфейса для своего приложения. У меня есть атрибут с именем numberOfPhotos в PhotosViewController, и его значение устанавливается из другого ViewController. Когда numberOfPhotos равно 2, в моем текущем PhotosViewController должны отображаться только две фотографии.

Мне удалось проверить, видно ли необходимое количество изображений или нет, но я не могу установить numberOfPhotos из класса UITests. Есть ли в любом случае, я могу установить это значение и перейти к тестам.

Токи Я редактирую код, чтобы установить значение для numberOfPhotos, и проверяю его. В любом случае я могу установить это значение из класса UITests. Спасибо.

1 Ответ

0 голосов
/ 07 мая 2019

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

Из ваших тестов:

let app = XCUIApplication()
app.launchArguments = XCUIApplication().launchArguments + ["UiTesting", "numberOfPhotos", "2"])
app.launch()

Из вашего приложения:

var isUiTesting: Bool {
    return ProcessInfo.processInfo.arguments.contains("UiTesting")
}

Напишите некоторый код вваш контроллер, чтобы проверить свойство isUiTesting и установить количество фотографий на основе следующих нескольких launchArguments.Вам нужно будет немного разобрать аргументы запуска.

...