4
如果我從故事板中的標識符出列單元格,如何以單元測試方式調用cellForRowAtIndexPath而不是單元格爲nil?單元測試cellForRowAtIndexPath使用storyBoards時
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
MyCustomTableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:kCustomCell];
cell.guestNameText.text = self.details.guestName;
return cell;
}
不工作,把一個破發點以上dequeReusableCell被稱爲細胞是零之後:
ETA:更新的工作代碼,以通過測試:
- (void)setUp {
[super setUp];
_detailVC_SUT = [[UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil]
instantiateViewControllerWithIdentifier:kDetailsVC];
_myService = [OCMockObject niceMockForClass:[MyService class]];
_detailVC_SUT.service = _myService;
}
- (void)test_queryForDetailsSucceeded_should_set_cell_text_fields {
[_detailVC_SUT view]; // <--- Need to load the view for this to work
Details *details = [DetailsBuilder buildStubDetails];
[_detailVC_SUT queryForDetailsSucceededWithDetails:details];
[self getFirstCellForGuestName];
}
- (void)getFirstCellForGuestName {
MyCustomTableViewCell *guestNameCell = (MyCustomTableViewCell*)[_detailVC_SUT tableView:_detailVC_SUT.detailsTableView cellForRowAtIndexPath:[NSIndexPath indexPathForRow:0 inSection:0]];
expect(guestNameCell.guestNameText.text).to.equal(@"Mark");
}
在你的測試中,視圖是否真的被加載? – Wain
是的,只是添加了[_detailVC_SUT視圖];但對於guestCell仍然顯示爲零。更新完整代碼 –
現在調用視圖加載視圖後,現在工作,錯過了,但現在它的作品,感謝您的建議Wain! –