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