2013-01-11 2 views
1

다음 단위 테스트를 사용합니다. Mockito를 사용하여 NSUserDefaults를 모의했으나 OCHamcrest 정규식을 사용하여 param이 NSDictionary의 인스턴스인지 테스트 할 때 경고를받습니다. :OCHamcrest matcher 매개 변수가 Mockito 모의와 호환되지 않습니다.

은 '는 NSDictionary *'

NSUserDefaults *userDefaultsMock = mockClass([NSUserDefaults class]); 
//OR -- NSUserDefaults *userDefaultsMock = mock([[NSUserDefaults standardUserDefaults]class]); 

Engineer *sut = [[Engineer alloc]init]; 

[given([userDefaultsMock stringForKey:@"engineerId"]) willReturn:@"02345"]; 

BOOL result = [sut setCurrentEngineerId:@"02345" userDefaults:userDefaultsMock]; 
[verify(userDefaultsMock) registerDefaults:instanceOf([NSDictionary class])]; 

감사 호환되지 않는 유형의 매개 변수에 'ID {HCMatcher을}'보내기

답변

2

설명서에 "형식화 된 인수는 정규식이 잘못된 유형이라는 경고를 발행합니다. 그냥 ID로 정규 캐스트 "귀하의 경우에는

,

[verify(userDefaultsMock) registerDefaults:(id)instanceOf([NSDictionary class])]; 
+0

감사합니다 -. 그 자리하지 않았다 – stan4th

+0

내가 예를 추가하여 명확하게하려고합니다.. –