有没有办法确定RhinoMocks模拟开始录制的时间?

时间:2009-02-06 09:27:50

标签: mocking rhino-mocks

据我了解,使用RhinoMocks创建的模拟对象在创建时直接进入录制状态,然后调用Replay()进入重放状态。我想手动决定模拟对象何时开始录制,或者能够暂停录制。在RhinoMocks中这可能吗?

由于 /埃里克

2 个答案:

答案 0 :(得分:3)

模拟处于记录或重放模式。他们不能处于“无”模式。

如果您不想使用AAA语法并且想要控制记录/重放状态,则必须在创建模拟后立即通过调用mockRepository.Replay(mock)方法手动执行此操作。 / p>

使用mockRepository.BackToRecord(mock,option)方法将模拟放回记录模式。使用BackToRecordOptions.None选项可以防止清除您已经设置的任何期望。

答案 1 :(得分:0)

在我看来,最好使用Arrange Act Assert格式。

var mockEmailService = MockRepository.GenerateMock<IEmailService>();
mockEmailService.Expect(x => x.Send("me@home", "Subject", "Body"));

//Thing to test
var controller = MehController(mockEmailService);
controller.Meh();

mockEmailService.VerifyAllExpectations();

如果您需要在进入播放模式之前使用该对象,那么您的测试就会出现问题。