遅延を伴う別のメソッドを呼び出すメソッドのブラック ボックス ユニット テストを作成したいと考えています。次のようになります。
- (void) doSomething {
// Do something
[self performSelector:@selector(doSomethingLater) withObject:nil afterDelay:kDelay];
}
- (void) doSomethingLater { }
wherekDelay
は定数であり、doSomethingLater
非公開です。問題はkDelay
1 秒であり、単体テストの実行を遅くしたくないということです。
doSomething
ブラックボックス アプローチで (または可能な限り)単体テストを行うには、どのような方法が最適でしょうか?
頭に浮かぶ唯一のことは、クラスにメソッドを追加して の値を変更することですがkDelay
、これは別の開発者によって偶然使用される可能性があります。より侵襲性の低い代替手段はありますか?