私のチームは最近、非常に柔軟で読みやすい構文のために、Moockをモックフレームワークとして使用することを決定しました。私たちが新しいので、私は簡単な質問であるように見えます。検索(ここではGoogleなど)はMoqの他のニュアンスについて議論していますが、いくつかの一見関連した質問は赤い稚魚に変わった。Moqで "ショートサーキット"ボイドメソッド?
私たちは、外部依存関係(正確にはAmazon SimpleDb)を持つクラスをテストしていますが、私たちのテストではライブ接続ができないようにします。特定の方法:
- が適切であれば、私はユニットにしたいのは、
それを呼びましょう、我々が構築したプロバイダを経由してSDBへの呼び出しを呼び出す
値を返すメソッドを扱うときは、これは些細なことでした。私も上記の概説場合
mockDb.Setup(d => d.GiveMeSomething()).Returns("Foo");
、私の「」方法は無効であり、したがって、部品番号のReturns()
メソッドを使用するオプションは使用できません。私はが呼び出されたことを確認するコールバックをセットアップすることができますが、実際に何もしないようにすることはできません。
有望/ナイーブ、私は次のように働くだろうと思ったが、まだメソッドを呼び出すように表示されます。
mockDb.Setup(d => d.SaveItem(It.IsAny<object>()));
だから、数百万ドルの質問:次の架空のコードの部品番号は何ですか?
mockDb.Setup(d => d.SaveItem(It.IsAny<object>())).STOP_RIGHT_HERE();
編集状況を明確にするために、テストが漂っ「ビジネス」クラスのためではなく、実際のSimpleDBの実装のためです。 SimpleDBの実装は他の場所でテストされています。ここでは私が嘲笑しているものです。 – bakasan