DotNetKicksなどでこれが参照されているのを見続けています...それでも、それが何であるか(英語で)、またはそれが何をするのかを正確に知ることはできませんか?それが何であるか、またはなぜ私がそれを使用するのか説明していただけますか?
簡単な英語で、Moqはプロジェクトに含めると、簡単な方法でユニットテストを実行できるライブラリです。どうして?ある関数が別の関数を呼び出し、次に別の関数を呼び出す可能性があるためです。しかし、実際に必要なのは、最初の呼び出しからの戻り値だけで、次の行に進みます。 Moqは、そのメソッドの実際の呼び出しを無視するのに役立ち、代わりに、その関数が返していたものを返します。コードのすべての行が実行された後、必要なものが取得したものかどうかを確認します。英語が多すぎるので、ここに例を示します。
_String Somethod()
{
IHelper help = new IHelper();
String first = help.firstcall();
String second= secondcall(first);
return second;
}
_
ここで、secondcall()
にはfirst
が必要ですが、他のレイヤーのように実際にhelp.firstcall()
を呼び出すことはできません。したがって、モックが実行され、そのメソッドが呼び出されたように見せかけます。
_[TestMethod]
public void SomeMethod_TestSecond
{
mockedIHelper.Setup(x=>x.firstcall()).Returns("Whatever i want");
}
_
ここで、SetUP
を偽のメソッド呼び出しとして考えてみましょう。ここでは、Returns
に関心があります。
Moqは、.NetTDDを実行するためのモックエンジンです。