Как реализовать XCUITest с вызовами API

Я новичок в XCUITest framework. Мне нужно вызвать API https://restcountries.eu/rest/v2/all получение списка стран и отображение в UITableView теперь, когда пользователь нажимает на любую ячейку в зависимости от названия страны, на следующем экране будет имя страны и флаг страны, теперь все работает нормально. Я хотел реализовать XCUITest для этого, что у меня есть добавлена ​​функция

 [![enter image description here][1]][1]

func testTheCountryListAndAllScreen() {
app.launch()
let countryListTableView = self.app.tables["CountryList"]
XCTAssertTrue(countryListTableView.exists, "Country list have data")
let countryListCell = countryListTableView.cells
 if countryListCell.count > 0 {
     for cell in 0..<countryListCell.count {
          let countryCell = countryListCell.element(boundBy: cell)
           countryCell.tap()
           self.app.buttons.staticTexts["Move to info page"].tap()
           self.app.navigationBars.buttons.element(boundBy: 0).tap()
           self.app.navigationBars.buttons.element(boundBy: 0).tap()
           }
      }
}

в приложении app.launch() происходит сбой


person Sanjay Mishra    schedule 14.07.2020    source источник


Ответы (1)


Вы можете делать запросы с помощью URLSession и получать доступ к данным с помощью JSONEncoder.


Если вы хотите протестировать свою таблицу (при изменении ее данных), используйте модульные тесты. Если вы хотите проверить, как взаимодействие с этой таблицей влияет на другие элементы пользовательского интерфейса, используйте тесты пользовательского интерфейса. Для лучшего понимания тестирования в Xcode посмотрите эти видео:


Вы не предоставили текст ошибки при запуске приложения, но я думаю, что вы пытались использовать API-интерфейсы тестирования пользовательского интерфейса XCTest в целевом модульном тесте.

person Roman Zakharov    schedule 14.07.2020
comment
Я получаю эту ошибку в своем потоке testTheCountryListAndAllScreen() 1: Неустранимая ошибка: неожиданно найдено nil при неявном развертывании необязательного значения - person Sanjay Mishra; 15.07.2020
comment
Я уже сделал вызов API и показал его в Tableview, теперь мне нужно выполнить для него UITesting. - person Sanjay Mishra; 15.07.2020