0
我讓我的問題變成簡單的版本。我想嘲笑NSDictionary。爲什麼OCMClassMock不創建模擬對象?
在我的測試類,我嘲笑的NSDictionary這樣:
NSDictionary* mockDict = OCMClassMock([NSDictionary class]);
OCMStub([mockDict objectForKey:@"account_type"]).andReturn(@"Mock ACC1 account_type");
OCMStub([mockDict objectForKey:@"account_number"]).andReturn(@"Mock ACC1 account_number");
現在我打的是真正的代碼是這樣的:
首先創建我的VC的一個實例。
CTRegisterPIckAccountViewController *_sutVC;
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle bundleForClass:[self class]]];
_sutVC = (CTRegisterPIckAccountViewController *)[storyboard instantiateViewControllerWithIdentifier:@"AccountListViewController"];
然後我打電話
[_sutVC tableView:mockTableView cellForRowAtIndexPath:mockIndexNotSelected];
在這個VC我在界面中使用的UITableViewDelegate,我調用這個函數:
-(UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
NSDictionary *account = [_accounts objectAtIndex:indexPath.row];
NSString *Tmp = [account objectForKey:@"account_type"];
}
但是當我把破發點,。僅在測試類中存在mockDict的實例。我得到零。我的期望是
[account objectForKey:@"account_type"]
此方法必須返回字符串值上面我掐滅,但返回nil。