У меня есть контроллер представления, который добавляет себя в качестве наблюдателя UIApplicationDidBecomeActiveNotification во время viewDidLoad. Я хотел бы проверить, что это происходит, но я не хочу, чтобы тест заботился о том, какой конкретный селектор контролирует контроллер просмотра для события.Использование OCMockito, как можно проверить, что какой-либо селектор был передан методу
В настоящее время мой тест выглядит примерно так:
- (void)testRegistersForApplicationDidBecomeActiveEvent
{
//given
MyViewController *sut = [MyViewController new];
NSNotificationCenter* mockNotificationCenter = mock([NSNotificationCenter class);
//when
[sut view];
//then
[verify([mockNotificationCenter]) addObserver:sut
selector:anything()
name:UIApplicationDidBecomeActiveNotification
object:nil];
}
... но проходит «ничего()» для выбора дает ошибку компилятора: «неявное преобразование указателя Objective-C к„SEL“ запрещен АРК ».
Я могу выполнить тестовую работу, если я передам «@selector (applicationDidBecomeActive :)» вместо всего. Это точный селектор, который использует контроллер вида. Но я бы предпочел, чтобы тест, по возможности, не обладал такими знаниями о конкретной реализации.