2013-12-11 7 views
4

OCMockito를 사용하여 기본 값으로 인수를 캡처하는 방법은 무엇입니까?OCMockito 기본 유형을 캡처합니까?

MKTArgumentCaptor는 개체 유형 만 캡처 할 수있는 것 같습니다. Xcode는 "정수 변환에 호환되지 않는 포인터"라고 말합니다.

답변

6

원시적 인 주장에 대해서는 약간의 춤을 추어야합니다. 의 우리가있는 NSMutableArray를 조롱하고 OCMockito을, 우리가 더미 값 (0은 잘 할 것)가

- (void)replaceObjectAtIndex:(NSUInteger)index withObject:(id)anObject; 

대신 당신에게 유형의 충돌을 제공

[verify(mockArray) replaceObjectAtIndex:[argument capture] withObject:anything()]; 

에 전화를 확인하지만 추가하고 싶어한다고 가정 해 봅시다 주어진 인수 인덱스에 정규를 오버라이드 (override) 전화 : -withMatcher:forArgument:의 인수 인덱스는 첫 번째 인수 0 기반

[[verify(mockArray) withMatcher:[argument capture] forArgument:0] 
    replaceObjectAtIndex:0 withObject:anything()]; 

, 그래서 이것은 들어 "라고 첫 번째 인수는 전달 된 것을 무시하고 대신이 정규 표현식을 사용합니다. "

은 단지 첫번째 인수에이를 수행하는 방법 -withMatcher:가되므로 본 실시 예는 다음의 NSNumber 반환

[[verify(mockArray) withMatcher:[argument capture]] 
    replaceObjectAtIndex:0 withObject:anything()]; 
+0

[인수 값]로 단순화 될 수있다. – huggie

+0

맞습니다. 그런 다음 NSNumber를 가져다가 원하는 것을 묻습니다. –