데이터베이스에 삽입 한 값이 내 클래스의 대리인에게 보내지는지 테스트하고 싶습니다.OCMock - nsarray의 내용을 예상하는 방법
위임을 조롱하고 데이터베이스를 채우는 데 사용 된 배열을 예상했습니다. 2 NSArray 같은 내용을 있지만 다른 개체 때문에 실패합니다.
필자는 성공한 모델에서 isequal 및 hash 메서드를 구현하려고 시도했습니다. 여기
오류 로그입니다 :'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];
}
감사합니다, 빈센트
무엇을해야할까요? 내가 빌드에서 경고있어 : "시맨틱 문제 : 'NSArray *'유형의 매개 변수에 'id *'를 보내는 호환되지 않는 포인터 유형 및 충돌 a 실행 : 이유 : '- [NSArrayM pointerValue] : 인스턴스로 전송 된 인식 할 수없는 선택기 0x6242960 ' – vdaubry
답을 업데이트했습니다. 대신이 방법을 사용해보십시오. 첫 번째 게시물은 분명 정확하지 않았습니다. – AdamH