У меня есть приложение Mac, действительно NSStatusItem, в котором я пытаюсь проверить его окно настроек.
Я использовал этот код в качестве модели, поскольку он работает так же, как и мой код, за исключением того, что мое окно инициализируется и отображается в функции, отличной от applicationDidFinishLaunching.
http://bit.ly/wH6QOk
Я получаю ошибку:
Ожидаемый метод не вызван: окно
Я не могу понять, почему это происходит. Вот мой тестовый код:
-(void)testPreferencesInit {
mockWindowController = [OCMockObject mockForClass:[NSWindowController class]];
id mockWindow = [OCMockObject mockForClass:[NSWindow class]];
[[[mockWindowController expect] andReturn:mockWindow] window];
[[mockWindow expect] makeKeyAndOrderFront:weathervane];
[weathervane showPreferences:nil];
[mockWindowController verify];
[mockWindow verify];
id windowController;
object_getInstanceVariable(weathervane, "windowController", (void **)&windowController);
GHAssertEqualObjects(windowController, mockWindowController,
@"windowController not set on appDelegate");
GHAssertTrue([[windowController windowNibName] isEqualToString:@"Preferences"], @"Window Controller nib name not set");
object_setInstanceVariable(weathervane, "windowController", nil);
mockWindowController = nil;
}