私は、職場のプロジェクトで Moles を採用することを (できれば) 推奨できるように、ホーム プロジェクトで Moles を試しています。私は VS 10.0.30319 と Moles 1.0.0.0 を使用しています。
次のクラスを作成しました。
public class DeveloperTestControlBL
{
public static bool VerifyCurrentDevelopmentStatus(int tpid, int testStatusID)
{
return false; // For this example, always return false,
// so that a return of true means the delegation worked
}
}
私のテスト クラスでは、VerifyCurrentDevelopmentStatus メソッドを呼び出すクラスをテストするテストを作成しました。次の形式の宣言があると予想していました。
[TestMethod]
[HostType("Moles")]
public void TestPreTCIToEditReady_WithMoles()
{
var devTCBL = new SDeveloperTestControlBL();
devTCBL.VerifyCurrentDevelopmentStatus = delegate(int tpid, int testStatusID)
{
return true;
}
// rest of the test here
}
私が見つけたのは、デリゲートを設定するには、これを行う必要があるということです:
[TestClass]
public class MyTest
{
[TestMethod]
[HostType("Moles")]
public void TestPreTCIToEditReady_WithMoles()
{
DelegateExample.Moles.MDeveloperTestControlBL.VerifyCurrentDevelopmentStatusInt32Int32 =
VerifyCurrentDevelopmentStatusAlwaysTrue;
// Rest of the test here
}
private bool VerifyCurrentDevelopmentStatusAlwaysTrue(int tpid, int status)
{
return true;
}
私が間違っていることについて誰かアドバイスがありますか? Microsoft.Moles.Framework; を使用しています。ステートメントを作成し、テスト プロジェクトで DeveloperTestControlBL.Moles への参照を設定します。
前もってありがとう、ロン・L