我有一个服务类和一个动作类,当事件触发时动作发生。所以测试在服务类中注册事件是很重要的。
我尝试使用 Rhino Mock 测试 RegisterEvent 函数,但我无法使测试通过,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 );
}