Я пытаюсь установить некоторый модульный тест в нашем огромном проекте. Проблема заключается в том, что некоторые ViewControllers когда называют частичным издеваться аварии с следующей трассировке:OCMock Partial mock только для класса потомков
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 является подклассом другого ViewController, где задан setTopBarView. Мне нужно использовать OCMPartialMock для EspionageVC, так как в противном случае я не смогу проверить его методы, однако это суперкласс (и методы) должен быть полностью изделен, чтобы предотвратить эти сбои. Любая помощь будет оценена.
Не думаю, что я понимаю, что вы просите. Частичные ложные объекты позволяют вам издеваться над методами в родительских классах. Было бы полезно, если бы вы поделились небольшим примером тестового кода, который вызывает сбой. –