遅延を持つ別のメソッドを呼び出すメソッドのブラックボックスユニットテストを書いてみたいと思います。 kDelay
が一定であるとdoSomethingLater
がプライベートでObjective-Cで遅延のあるメソッドをユニットテストする
- (void) doSomething {
// Do something
[self performSelector:@selector(doSomethingLater) withObject:nil afterDelay:kDelay];
}
- (void) doSomethingLater { }
:それはちょっと、このようになります。問題はkDelay
が1秒であることと、私はユニットテストの実行を遅くしたくないということです。
は何最高のブラックボックス・アプローチの下でユニットテストdoSomething
への道(またはできるだけ多く)でしょうか?
唯一のことは、クラスにメソッドを追加してkDelay
の値を変更することですが、これは別の開発者が偶然に使用する可能性があります。あまり侵襲的でない選択肢はありますか?
私はそれが異なる方法で侵襲的だと思います。 –
このアプローチの問題は、何らかの理由でperformSelectorを別のメソッドに対してdelayで変更するとテストが遅くなり、誰もその理由を知ることができない場合です。 – hpique
しかし、定数をうごかすことができればいいですね。 – hpique