OCMock-如何期望nsarray的内容

问题描述

| 我想测试我插入数据库中的值是否发回给我的类的委托。 我试图模拟委托,并期望我用来填充数据库的数组。它失败是因为2个NSArray具有相同的内容,但是是不同的对象。 我曾尝试在我的模型上成功实现等值和哈希方法。 这是错误日志:
\'OCMockObject[NewsListViewController]: unexpected method invoked: service:<RSSService-0x4c25b90-324400011.636966: 0x4c25b90> didFinishParsingRSSWithItems:(
    description102362,description102362,description102362
) 
    expected:   service:<OCMAnyConstraint: 0x4c10f30> didFinishParsingRSSWithItems:(
    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];
}
谢谢你的帮助, 文森特     

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)