对 IBOutlet 进行单元测试相当容易,但是 IBActions 怎么样?我试图找到一种方法来做到这一点,但没有运气。有没有办法对视图控制器中的 IBAction 和 nib 文件中的按钮之间的连接进行单元测试?
对于完整的单元测试,每个出口/操作需要三个测试:
- 插座是否连接到视图?
- 插座是否连接到我们想要的操作?
- 直接调用该操作,就像它是由插座触发的一样。
我一直这样做是为了 TDD 我的视图控制器。你可以看一个例子在这个截屏视频中.
听起来你是在专门询问第二步。这是一个单元测试的示例,验证内部是否进行了修改myButton
将调用该操作doSomething:
这是我如何表达它奥查姆克雷斯特. (sut
是被测系统的测试夹具。)
- (void)testMyButtonAction {
assertThat([sut.myButton actionsForTarget:sut
forControlEvent:UIControlEventTouchUpInside],
contains(@"doSomething:", nil));
}
或者,这是一个没有 Hamcrest 的版本:
- (void)testMyButtonAction {
NSArray *actions = [sut.myButton actionsForTarget:sut
forControlEvent:UIControlEventTouchUpInside];
XCTAssertTrue([actions containsObject:@"doSomething:"]);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)