有什么方法可以决定RhinoMocks模拟何时开始录制?
问题描述:
据我所知,用RhinoMocks创建的模拟对象在创建时直接进入录制状态,然后调用Replay()进入重放状态。我想手动决定模拟对象何时开始录制,或者能够暂停录制。 RhinoMocks会有这种可能吗?有什么方法可以决定RhinoMocks模拟何时开始录制?
感谢 /埃里克
答
嘲笑处于记录模式或重放模式。他们不能处于“无”模式。
如果您不想使用AAA语法,并且您想要控制记录/重播状态,那么您必须通过在创建模拟之后立即调用mockRepository.Replay(mock)方法来手动执行它。
使用mockRepository.BackToRecord(模拟,选项)方法将模拟回到记录模式。使用BackToRecordOptions.None选项可防止清除您已设置的任何期望。
答
在我看来,这是更好地使用排列法断言格式。
var mockEmailService = MockRepository.GenerateMock<IEmailService>();
mockEmailService.Expect(x => x.Send("[email protected]", "Subject", "Body"));
//Thing to test
var controller = MehController(mockEmailService);
controller.Meh();
mockEmailService.VerifyAllExpectations();
如果您在进入回放模式之前需要使用该对象,那么测试出现问题。