嗨,我实际上使用 TDD 开发了一个应用程序。该应用程序使用故事板。我有一个 UITableViewController 在单元格选择后执行 segue。代码有效,但我对 segue 的测试总是失败。
Segue 和 TDD 有什么特别之处吗?使用传统的 didSelectRowAtIndexPath 工作流程是可行的。但我想使用具有所有好处的故事板。
这是我的测试代码:
- (void)testThatAfterPerformingSegueForSecondRowTheSessionHasSescondQuestSelected
{
NSIndexPath *secondQuestPath = [NSIndexPath indexPathForRow:1 inSection:0];
UITableViewCell *secondCell = [sut tableView:sut.tableView cellForRowAtIndexPath:secondQuestPath];
[sut performSegueWithIdentifier:kStationsSegueIdentifier sender:secondCell];
MNVQuest *quest = session.quests[1];
assertThat(session.selectedQuest, is(quest));
}
这是我的 ViewController 代码:
- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
if ([segue.identifier isEqualToString:kStationsSegueIdentifier]) {
NSIndexPath *selectedIndexPath = [self.tableView indexPathForCell:sender];
NSLog(@"ROW: %d", selectedIndexPath.row);
_session.selectedQuest = _session.quests[selectedIndexPath.row];
}
}