Как вы пишете модульные тесты для первого респондента?
Я пытаюсь написать тест, чтобы подтвердить, что метод перемещает фокус на следующее текстовое поле. контроллер
является потомком UIViewController
. Но этот исследовательский тест не проходит:
- (void)testFirstResponder
{
[controller view];
[[controller firstTextField] becomeFirstResponder];
STAssertTrue([[controller firstTextField] isFirstResponder], nil);
}
Первая строка вызывает загрузку представления, так что его выходы находятся на своих местах. Текстовые поля не равны нулю. Но тест никогда не проходит.
Я предполагаю, что beginFirstResponder
не сразу устанавливает первого респондента, а планирует его на потом. Так есть ли хороший способ написать модульный тест против этого?
Вытягивание ответа из комментария в принятом ответе… Дайте ему поработать ненадолго:
[[NSRunLoop currentRunLoop] runUntilDate:[NSDate date]];
Я также обнаружил, что мне нужно создать UIWindow и поместите в него представление контроллера представления, как указано в ответе, получившем наибольшее количество голосов.