OCUnitで非同期コードをテストできる既存のライブラリを知っている人はいますか? GHAsyncTestCase
のようなものを考えていますが、それはSenTestCase
から配信されます。iOSの非同期コードをOCunitでテストする
私が気付いていない場合は、GHAsyncTestCase
をOCUnitに移植するつもりですが、すでに他の人が行っている作業を複製したくないからです。
OCUnitで非同期コードをテストできる既存のライブラリを知っている人はいますか? GHAsyncTestCase
のようなものを考えていますが、それはSenTestCase
から配信されます。iOSの非同期コードをOCunitでテストする
私が気付いていない場合は、GHAsyncTestCase
をOCUnitに移植するつもりですが、すでに他の人が行っている作業を複製したくないからです。
ピョートル:
あなたは、私がMimicでやった仕事に興味があるかもしれません、あなたはハイレベルの要求をスタブし、あなたのObjective-Cから使用することができますRubyで書かれたネットワークスタブツール提供されたラッパーを使用します。
非同期テストに関しては、AssertEventuallyという小さなユーティリティを見てください。
This exampleは、MimicとassertEventuallyの両方の動作を示しています。
さらに、Kiwiを参照してください。OCUnitの上に構築されたObjective-Cテストフレームワークです。それは式の評価ではなく、新しい結果のためのポインタをチェックしているので、
id someObject = nil;
[do SomethingThatFetchesSomeObjectAsynchronously];
[[theObject(&someObject) shouldEventually] equal:@"some result"];
これは私が探していたものです。ミミックはかなり面白そうに見えますが、私はそれを見ます。ありがとうございました! –
Assert最終的には便利だと思うが、リンクは死んでいる。どんな助け? – AndrewCr
私は '-shouldEventually'ビヘイビアでKiwiを使用しています。それがあなたの手仕事だったことがわかりました。ありがとう! –
AGAsyncTestHelperがAssertEventually
よりもわずかに異なるアプローチを取る:私は最近、あなたがのようなものを書くことができますキウイを超えるポート私AssertEventually行動にパッチを貢献しました。 AGAsyncTestHelperを使用する利点の1つは、ブロック、デリゲートコールバックおよびその他のものに使用できることです。質問
id someObject = nil;
[self doSomethingThatFetchesSomeObjectAsynchronously];
WAIT_WHILE(self.someObject == nil, 1.0);
に答える
私は前にこれをやって、誰のかわからないが、私は聞いています。なぜ単体テストを実行するために通常使用されるフレームワークで非同期動作をテストする必要があると感じますか?あなたはあなたの行動の半分を信頼しませんか?別々にテストすることはできませんか?あなたは本当に統合テストを書いていますか? – Jonah
@Jonah、そうです、本当に便利ですが、時にはネットワーク層全体をモックアップするのが面倒です。それで、ローカルサーバーとそれに対する統合テストを実行するだけの魅力があります。 –