我想爲延遲調用另一個方法的方法編寫黑盒單元測試。這有點類似於:單元測試Objective-C中延遲的方法
- (void) doSomething {
// Do something
[self performSelector:@selector(doSomethingLater) withObject:nil afterDelay:kDelay];
}
- (void) doSomethingLater { }
凡kDelay
是一個常數,doSomethingLater
是私人的。問題是kDelay
是1秒,我不想減慢單元測試的執行速度。
單元測試doSomething
在黑箱方法下(或儘可能)的最佳方式是什麼?
唯一想到的是在類中添加一個方法來更改kDelay
的值,但這可能會被其他開發人員意外地使用。是否有一種侵入性較小的選擇?
我想我會說它是以不同的方式侵入。 –
這種方法的問題是,如果由於某種原因有人決定改變performSelector延遲的另一種方法,那麼測試會變得緩慢,沒有人會知道爲什麼。 – hpique
雖然,能夠調整常量會很好。 – hpique