【发布时间】:2011-08-30 01:28:00
【问题描述】:
如何编写第一响应者单元测试?
我正在尝试编写一个测试来确认一个方法将焦点推进到下一个文本字段。 controller 是 UIViewController 的后代。但是这个探索性测试失败了:
- (void)testFirstResponder
{
[controller view];
[[controller firstTextField] becomeFirstResponder];
STAssertTrue([[controller firstTextField] isFirstResponder], nil);
}
第一行导致视图被加载,以便其出口就位。文本字段非零。但测试永远不会通过。
我猜becomeFirstResponder 不会立即设置第一响应者,而是安排稍后进行。那么有没有好的方法来针对它编写单元测试呢?
从已接受答案的评论中提取答案……让事情运行一小段时间:
[[NSRunLoop currentRunLoop] runUntilDate:[NSDate date]];
我还发现我需要创建一个 UIWindow 并将视图控制器的视图放入其中,如最受好评的答案中所述。
【问题讨论】:
标签: iphone ios testing ocunit first-responder