2

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

谢谢/埃里克

4

2 回答 2

3

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

如果您不想使用 AAA 语法并且想要控制记录/重放状态,那么您必须在创建模拟后立即通过调用 mockRepository.Replay(mock) 方法手动完成。

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

于 2009-02-10T02:06:11.213 回答
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();

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

于 2009-02-06T09:33:10.763 回答