Я работаю над своими модульными тестами для программирования iOS, и у меня возникла небольшая проблема при попытке проверить мой основной класс, издеваясь над его дочерние классы с использованием OCMock, а затем видя, добавляет ли основной класс дочерние контроллеры (mockObjects [uiviewContoller]), а затем проверяет, что объект вызывает метод на каждом из дочерних контроллеров.Добавление контроллера корневого представления OCMockObject [UIViewController] как ошибка контроллера дочернего представления
Проблема в том, я постоянно получаю «тест не пройден„ добавив контроллер вида корневой OCMockObject [UIViewController] в детстве зрения контроллера“»
каждый раз, когда я запустить тест.
- (void)setUp
{
[super setUp];
testMain = [[UIViewController alloc] init];
}
- (void)tearDown
{
for (UIViewController *testCon in testMain.childViewControllers) {
[testCon removeFromParentViewController];
}
testMain = nil;
[super tearDown];
}
тест:
- (void) testDayNightTriggerTriggersAllSubviews{
id mockTopController = [OCMockObject niceMockForClass:[UIViewController class]];
id mockBottomController = [OCMockObject niceMockForClass:[UIViewController class]];
id mockMainScreen = [OCMockObject niceMockForClass:[UIViewController class]];
[[mockTopController expect] dayNightTrigger];
[[mockBottomController expect] dayNightTrigger];
[[mockMainScreen expect] dayNightTrigger];
//trigger
[testMain dayNightTrigger:mockTopController bottom:mockBottomController main:mockMainScreen];
[mockBottomController verify];
[mockTopController verify];
[mockMainScreen verify];
}
метод для проверки:
//overload
- (void) dayNightTrigger:(UIViewController *) top bottom:(UIViewController *)bottom main:(UIViewController *)main{
self.bottomMenu = bottom;
self.topMenu = top;
self.mainScreen = main;
[self dayNightTrigger];
}
- (void) dayNightTrigger{
[self.app dayNightTrigger];
[self.bottomMenu dayNightTrigger];
[self.topMenu dayNightTrigger];
[self.mainScreen dayNightTrigger];
}
мне было интересно, если есть что-то не так с моей установки/демонтажа? или я делаю что-то не так с каркасом OCMock, но на самом деле, почему я продолжаю получать эту ошибку.
Возможно, было бы полезно вставить фактическую трассировку. –
Должны ли вы насмехаться над собой .app dayNightTrigger? –