2009-07-13 3 views
6

내 응용 프로그램 테스트에서 UITabBarController를 모의하려고합니다. 테스트 클래스에서 ocmock과 함께 가져온 다른 파일의 다른 곳에 정의 된 해당 클래스의 범주 메서드가 있습니다.OCMock에서 UIKit 클래스의 범주 메서드를 스텁링 할 수있는 방법은 무엇입니까?

- (void) setUp 
{ 
    id mockTabController = [OCMockObject mockForClass:[UITabBarController class]]; 
    [[[mockTabController stub] andReturn:nil] displayedViewController]; 
    // displayedViewController is the category method 
} 

하지만 난 그렇게하고 테스트가 스텁 호출에 도달 할 때, 내가 말하는 오류 얻을 : 내가 필요 특정 뭔가

[NSProxy doesNotRecognizeSelector:displayedViewController] called! 

거기를 내가 이렇게 노력하고있어 이것이다 ocmock이 빌트인 프레임 워크 클래스의 카테고리 메소드를 인식하도록 허용합니까?

답변

16

문제점을 파악했습니다. 클래스 카테고리가 정의 된 파일이 프로젝트의 올바른 대상에 없습니다. 그것은 주요 대상 이었지만 단위 테스트 대상은 아니 었습니다. 그것을 올바른 장소에 추가하면 그것이 순조롭게 진행됩니다.

+3

자신의 솔루션을 문서화 해 주셔서 감사합니다. 그것은 나를 도왔습니다 :) – nacho4d