거대한 프로젝트에서 단위 테스트를 설정하려고합니다. 문제는 그 다음 추적과 부분적인 모의 충돌이라는 일부 ViewControllers :OCMock 하위 클래스 전용 부분 모의
error: -[EspionageViewControllerTests testFillEspionageTabInfo] : failed: caught "NSInternalInconsistencyException", "-[UIViewController _loadViewFromNibNamed:bundle:] loaded the "EspionageViewController" nib but the view outlet was not set."
0 CoreFoundation 0x0000000111264f35 __exceptionPreprocess + 165
1 libobjc.A.dylib 0x0000000110efdbb7 objc_exception_throw + 45
2 CoreFoundation 0x0000000111264e6d +[NSException raise:format:] + 205
3 UIKit 0x000000010f68805f -[UIViewController _loadViewFromNibNamed:bundle:] + 441
4 UIKit 0x000000010f688588 -[UIViewController loadView] + 109
5 UIKit 0x000000010f6887f9 -[UIViewController loadViewIfRequired] + 75
6 UIKit 0x000000010f688c8e -[UIViewController view] + 27
7 AppName 0x000000010c07c388 -[IOViewController setTopBarView:] + 1144
내가 setTopBarView 문제, 나는 다음과 같은 만든 특히 장소가 있었다 알고있는 것처럼 : 그래서
[viewElement setFrame:CGRectMake(viewElement.frame.origin.x, self.view.bounds.origin.y - viewElement.frame.size.height , viewElement.frame.size.width, viewElement.frame.size.height)];
자기를 .view 호출로이 충돌이 발생합니다. 내 질문은 어떻게이 상황을 피할 수 있습니다 - 특히 내 EspionageViewController setTopBarView 정의 된 다른 ViewController 하위 클래스입니다. EspionageVC에서 OCMPartialMock을 사용해야합니다. 그렇지 않으면 메소드를 검사 할 수 없지만 수퍼 클래스 (및 메소드)는 이러한 충돌을 방지하기 위해 완전히 조롱되어야합니다. 어떤 도움을 받을지 모르겠다.
나는 당신이 무엇을 요구하고 있는지 이해하지 못합니다. 부분 모의 객체를 사용하면 부모 클래스에서 메소드를 조롱 할 수 있습니다. 실패의 원인이되는 테스트 코드의 작은 예제를 공유 한 경우 도움이 될 수 있습니다. –