2013-04-10 2 views
0

안녕하세요, TCH 방법론을 사용하여 경로를 시작하기 위해 OCHamcrest와 OCMockito를 사용하고 있습니다. 정말 멋진 도구이지만, 내가 이해하지 못하는 것 중 하나가 있습니다. 프로토콜을 조롱하고 매개 변수를 평가하려고합니다. 그것은 같은 기대 작품매개 변수 테스트 OCMockito를 사용하여 모의 프로토콜로 전송

- (void)testVerifyWithMatcherForPrimitive 
{ 
    NSMutableArray *mockArray = mock([NSMutableArray class]); 

    [mockArray removeObjectAtIndex:2]; 

    [[verify(mockArray) withMatcher:greaterThan([NSNumber numberWithInt:1]) forArgument:0] 
    removeObjectAtIndex:0]; // The 0 is a placeholder, replaced by the matcher 
} 

,하지만 난 모의 프로토콜이를 복제 할 때 항상 예를 ​​들어, 시험을 통과 :

- (void)testFirstParameter 
{ 
    // given 
    id<TestProtocol> mockElement = mockProtocol(@protocol(TestProtocol)); 

    // when 
    id toProcess = nil; 
    [mockElement process: toProcess]; 

    // then 
    id firstArgumentMatcher = instanceOf([NSArray class]); 
    [[verify(mockElement) withMatcher: firstArgumentMatcher forArgument: 0] process: toProcess]; 
} 
코드와 함께 제공되는 예제를 고려

이 테스트에서는 인수가 NSArray 클래스의 인스턴스임을 테스트하려고하는데 통과해서는 안됩니다. 내가 뭘 잘못하고 있는지 발견하도록 도와 줄 수 있겠 니?

난 당신이 단지 원시적 인수를 사용 withMatcher:forArgument:

[[verify(mockElement) process:instanceOf([NSArray class])]; 

하려는 생각, 당신에게

루이스 알레한드로

답변

2

를 대단히 감사합니다.

+0

정확! 고맙습니다 ... (이 위대한 도구들에 대해 감사드립니다) :) – xlarsx