Родинки требуют хэшированных методов

Я испытываю 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 в тестовом проекте.

Заранее спасибо, Рон Л

1 ответ

Попробуй это

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

Это сработало для меня.

Другие вопросы по тегам