2013-05-02 2 views
3

이것은 OCMock 기대치에 대한 매우 기본적인 질문입니다. objectA에 methodB 메소드를 호출하는 objectA에 methodA라는 인스턴스 메소드가 있습니다.OCMock은 다른 메서드 내에서 호출되는 메서드를 기대합니다.

- (void)methodA { 
    [self methodB]; 
} 

- (void)methodB { 
    ... 
} 

이제 objectA의 부분 모의가 methodA와 methodB를 호출하는지 확인하겠습니다. 그것은 당신이 할 일은해야 모두가처럼 보인다 내가 테스트를 실행하면 methodA가 성공적으로 호출 된 것을, 그것은 생각

- (void)test { 
    id mockObjectA = [OCMockObject partialMockForObject:self.objectA]; 
    [[mockObjectA expect] methodA]; 
    [[mockObjectA expect] methodB]; 

    [self.objectA methodA]; 

    [mockObjectA verify]; 
} 

하지만 methodB가 성공적으로 호출되지 않았 음. 내가 오해하니?

도움 주셔서 감사합니다.

답변

4

실제로 구현이 실행될 수 있도록 메소드 호출을 실제 객체로 전달하도록 mock에 지시해야합니다.

[[[mockObjectA expect] andForwardToRealObject] methodA]; 
+0

감사합니다. 내가 더 조심스럽게 설명서를 읽을 필요가있는 것 같습니다. 그건 그렇고, 미래의 사람들을 위해 당신의 대답을 약간 편집하고 싶을지도 모른다 :'[[[mockObjectA expect] andForwardToRealObject] methodA]; ' –

+0

고마워, 나는 대답을 업데이트했다! –

관련 문제