У меня есть класс обслуживания и класс действия, и действие происходит при срабатывании события. Так что тестовый регистр событий в классе обслуживания важен.Как протестировать событие было зарегистрировано в AssertWasCalled (AAA)?
Я попытался использовать функцию RegisterEvent Rhino Mock, но я не могу выполнить тестовый проход, AssertWasCalled всегда терпит неудачу.
Буду признателен, если кто-нибудь может дать мне рекомендации или ссылки на статьи.
public class ServiceClass
{
public ActionClass Printer {set; get;}
public void RegisterEvent()
{
Printer = new ActionClass();
Printer.PrintPage += Printer.ActionClass_PrintPage;
}
}
public class ActionClass
{
event PrintPageEventHandler PrintPage;
public void ActionClass_OnAction(object sender, PrintPageEventArgs e)
{
// Action here.
}
}
[Test]
public void RegisterEvent_Test()
{
var service = new ServiceClass();
var mockActionClass = MockRepository.GenerateMock<IActionClass>();
service.Printer = mockActionClass;
service.RegisterEvent();
mockActionClass.AssertWasCalled(x => x.PrintPage += Arg<PrintPageEventHandler>.Is.Anything);
}
Привет, спасибо за ответ. @srsyogesh упомянул об этом. Тем не менее, Arg <> необходимо изменить в тестовой функции, чтобы заставить ее работать. Я опубликую свой результат. –
В конце концов, в тестировании было что-то еще зажатое, поэтому Arg <> работает. Благодарю. –