2017-02-13 2 views
1

Я пытаюсь написать единичный тест, который будет представлен контроллером вида после выбора строки. Объявление ячейки не работает, потому что по какой-то причине вы не можете вызвать didSelectRow в tableview. Кроме того, я получаю сообщение об ошибке, которое представлено VC:Как проверить, что контроллер представления был представлен?

func testDidSelectNewsReportCalledWhenNewsReportSelected() { 
    var cell = tableView.didSelectRow(at: IndexPath(row: 0, section: 3), animated: false) //This line doesn't work 

    let presentedVC = controller.presentedViewController?.view 
    let newsReportVC = UIStoryboard(name:"News", bundle: Bundle.init(for: NewsViewController.self)).instantiateViewController(withIdentifier: "NewsReport") as! NewsReportViewController 
    XCTAssertEqual(newsReportVC, presentedVC) 
} 

Спасибо.

+1

Установить tableView.delegate = self и проверить этот поток, как реализовать didSelectRow, вы делаете это неправильно. http://stackoverflow.com/questions/26740538/swift-uitableview-didselectrowatindexpath-diddeselectrowatindexpath-add-re –

ответ

1

Чтобы проверить это, вы должны смотреть на стек презентации (если вы представляете контроллер представления) или стек навигации (если вы используете навигацию контроллер.

Кроме того, программно выбора индекс табличного путь будет не причиной его вызвать метод didSelectRow это делегат.

не беспокоить тестирование, чтобы увидеть, если выбор конкретной строки вызывает метод делегата didSelect получить называется. Доверие, что Apple, реализованная свой код правильно. Все, что вам нужно проверить, - это то, что в представлении таблицы есть правильный делегат и что когда вызывается метод selectSelect, он делает t он прав.

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

Смежные вопросы

 Смежные вопросы