24

これが DotNetKicks などで言及されているのをよく見かけますが、それが何であるか (英語で) または何をするのか正確にわかりませんか? それが何であるか、またはなぜそれを使用するのか説明できますか?

4

3 に答える 3

36

Moqは、C#/.NET 用のモック フレームワークです。単体テストで使用され、テスト対象のクラスをその依存関係から分離し、依存オブジェクトの適切なメソッドが呼び出されていることを確認します。モッキングの詳細については、ウィキペディアのモック オブジェクトに関する記事を参照してください。

その他のモッキング フレームワーク (.NET 用) には、JustMockTypeMockRhinoMocks 、 nMockなどがあります。

于 2009-03-24T19:29:18.620 に答える
20

簡単に言えば、Moq は、プロジェクトに組み込むと、単体テストを簡単に実行できるようにするライブラリです。なんで?ある関数が別の関数を呼び出し、次に別の関数を呼び出す可能性があるためです。しかし、実際に必要なのは、次の行に進むための最初の呼び出しからの戻り値だけです。Moq は、そのメソッドの実際の呼び出しを無視するのに役立ち、代わりにその関数が返していたものを返します。コードのすべての行が実行された後、必要なものが得られるかどうかを確認します。英語が多すぎるので、例を次に示します。

String Somethod()
{
  IHelper help = new IHelper();
  String first = help.firstcall();
  String second= secondcall(first);
  return second;
}

ここでfirstfor が必要secondcall()ですが、実際にはhelp.firstcall()他のレイヤーでそのまま呼び出すことはできません。そのため、メソッドが呼び出されたと偽って、モッキングが完了しました。

[TestMethod]
public void SomeMethod_TestSecond
{
  mockedIHelper.Setup(x=>x.firstcall()).Returns("Whatever i want");  
}

SetUPここでは、偽のメソッド呼び出しとして、単に に関心があると考えてReturnsください。

于 2013-08-14T19:13:20.850 に答える
3

Moq は、.Net TDD を実行するためのモッキング エンジンです。

于 2009-03-24T19:29:29.447 に答える