我想为一个延迟调用另一个方法的方法编写黑盒单元测试。它看起来像这样:
- (void) doSomething {
// Do something
[self performSelector:@selector(doSomethingLater) withObject:nil afterDelay:kDelay];
}
- (void) doSomethingLater { }
wherekDelay
是一个常数并且doSomethingLater
是私有的。问题是kDelay
1 秒,我不想减慢单元测试的执行速度。
doSomething
在黑盒方法下(或尽可能多地)进行单元测试的最佳方法是什么?
唯一想到的是向类添加一个方法来更改 的值kDelay
,但这可能会被其他开发人员意外使用。有没有侵入性较小的替代方案?