Я не уверен, как я могу реализовать, что мой макет UITableView
отвечает правильно на indexPathsForSelectedRows
. В моем приложении пользователь может (в состоянии редактирования) выбирать ячейки в представлении таблицы, представляющие файлы/папки данного каталога. Как только пользователь выбирает элемент папки, ранее выбранные файлы должны быть отменены. Мой тест (с использованием OCHamcrest/OCMockito) выглядит следующим образом.Работа с индексом UITableViewPathsForSelectedRows
- (void)test_tableViewwillSelectRowAtIndexPath_DeselectsPreviouslySelectedCells
{
// given
[given(self.mockTableView.editing) willReturnBool:YES];
// when
[self.sut tableView:self.mockTableView willSelectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:SectionIdFile]];
[self.sut tableView:self.mockTableView willSelectRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:SectionIdFolder]];
// then
}
Проблема заключается в том, что я могу проверить, что выбран пункт файл, но я не могу просить о mockTableView для своих выбранных строк. Может ли кто-нибудь сказать мне, как с этим справиться? Должен ли я сам записывать вызовы tableView:selectRowAtIndexPath:animated:scrollPosition:
и предоставлять правильный ответ, когда tableView запрашивает эту информацию?
Почему вы не можете запрашивать выбранные строки? вы уже пытались использовать метод indexPathsForSelectedRows', и он вернул нуль? – geo
Задание mockTableView для выбранных строк всегда возвращает nil, но он должен возвращать массив с помощью indexPath, предоставленного в первом вызове, для параметра willSelectRowAtIndexPath. –