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