OCMock-如何期望nsarray的内容
|
我想测试我插入数据库中的值是否发回给我的类的委托。
我试图模拟委托,并期望我用来填充数据库的数组。它失败是因为2个NSArray具有相同的内容,但是是不同的对象。
我曾尝试在我的模型上成功实现等值和哈希方法。
这是错误日志:
\'OCMockObject[NewsListViewController]: unexpected method invoked: service:<RSSService-0x4c25b90-324400011.636966: 0x4c25b90> didFinishParsingRSSWithItems:(
description102362,
description102362,
description102362,
description102362,
description102362
)
expected: service:<OCMAnyConstraint: 0x4c10f30> didFinishParsingRSSWithItems:(
description102362,
description102362,
description102362,
description102362,
description102362
)\'
我怎样才能做到这一点 ?
这是我的测试:
- (void) testServiceShouldNotLoadArticlesFromRSSFeedIfArticlesInDatabase {
NSArray *fakeArticles = [TestUtils createArticles:5];
[[DatabaseManager sharedManager] saveArticles:fakeArticles];
RSSService *mockService = [OCMockObject partialMockForObject:service];
id mockDelegate = [OCMockObject mockForClass:NewsListViewController.class];
[[mockDelegate expect] service:[OCMArg any] didFinishParsingRSSWithItems:fakeArticles];
mockService.delegate = mockDelegate;
[mockService loadAllArticles];
[mockService verify];
[mockDelegate verify];
}
这是我正在测试的方法:
- (void) loadAllArticles {
NSArray *articles = [self articlesFromDatabase];
[self.delegate service:self didFinishParsingRSSWithItems:articles];
}
谢谢你的帮助,
文森特
没有找到相关结果
已邀请:
2 个回复
唤副埂侧壬
如果由于某些原因确实不想使用hamcrest,则可以在测试类中创建一个用于评估articles数组的方法。但是我认为这很丑陋:
怪酞撩匹