2016-06-15 6 views
2

会話の中で簡単にMoqテストの手順を記述する自然な方法はありますか?私が思っている:会話の中で簡単にmoqテストを記述する方法は?

  1. はモックオブジェクト
  2. 使用するためのインタフェースのための
  3. セットアップの依存関係をモックオブジェクトをインスタンスを返しますが

が、私はいずれかを足りない期待される結果を検証するために機能します何かを間違って、あるいは不十分に説明するのか?私は以前のプロジェクトでMoqを使用しましたが、私はMoqや単体テストのエキスパートではないので、このドメインにもっと慣れ親しんだ人からのインプットを探しています。

+0

「自然」とはどういう意味ですか? – Raedwald

+0

Moqは、被試験コード(CUT)の外部依存関係を偽造するために使用されます。例:CUTいくつかのファイルに書き込むと、外部依存関係とみなされ、嘲笑される必要があります。ユニットテストはメソッド自体をテストし、ファイルシステムへの書き込みはテストしません。 HTH – dee

答えて

0

のは、それを試してみましょう:

  1. はモックを作成します。
  2. (必要に応じて)セットアップします。
  3. モックを依存オブジェクトに注入します。
  4. 依存オブジェクトでテストするメソッドを呼び出します。
  5. モックの適切なメソッドが呼び出されていることを確認します。
+0

あなたがインタビューの文脈でこれらのステップを説明していたとしましょう。モック*は常にインターフェイスから作成する必要がありますか?これは技術的な要件ですか、ベストプラクティスですか?それは嘲笑の基本的な概念のようです、正しい? 「必要に応じて設定してください」模擬テストを設定する必要のない単体テストシナリオの例を教えてください。私は書いたすべての単体テストでセットアップをやっていることを覚えているようです。 – user6411982

+0

最初に、抽象クラス、または非密封クラスでもMoqを作成することができます(仮想メソッドのみがモックされます)。次に、整数を返すメソッドでクラスをモックできます。これを設定しないと、メソッドはいくつかのテストで有効なデフォルト値(ゼロ)を返します。 – Charlie

+0

ありがとうカルロス。クラスに関連するインターフェースがあるシナリオを考えると、クラスの代わりにインターフェースに対してモックを作成する必要があります。モックは、大部分のシナリオ、特に一般的なエンタープライズアプリケーションの場合には、セットアップする必要があると言いますか? – user6411982

0

これは単体テストの中核であり、自分が行っていることを正確に説明することができ、さらに重要なのは、テストしているユニットです。それほど多くはありませんが、あまりにも少なすぎず、モックをテストしません。プロダクションコードのユニットをテストするだけです。

会話の中で「模擬」を定義するには、あなたが言ったように、単体テストがという簡潔に何であるか知る必要があります。。今私は単体テストであるが特定の現実的な環境に生産コードのできるだけ小さい部分を入れて、意図した結果を監視して確認すると言うでしょう。私はちょうどそれを作ったので、他のどこかでより良い定義を見つけることができると確信しています。念頭に置いて

、あなたは単にモッキングはまさにその与えられた「現実的かつ具体的な環境を制御し、設定する機能であると言えるでしょう。

太字の2行は、プログラミングが何であるかを知っている人にそれを定義する方法です。あなたが完全な初心者と話しているのであれば、別のアプローチをとるべきかもしれませんが、それは別の質問です。

また、私はこの質問がプログラマーでなければならないと感じています。 :P

関連する問題