Родинки требуют хэшированных методов
Я испытываю 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;
});
Это сработало для меня.