1

私は、職場のプロジェクトで 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

4

1 に答える 1

0

これを試して

   devTCBL.VerifyCurrentDevelopmentStatus (delegate(int tpid, int testStatusID) 
       {
            return true;
       });

それは私のために働いた。

于 2012-11-14T13:30:26.023 に答える