代码之家  ›  专栏  ›  技术社区  ›  Erik Öjebo

有没有办法决定RhinoMocks模拟何时开始录制?

  •  2
  • Erik Öjebo  · 技术社区  · 16 年前

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

    谢谢 /埃里克

    2 回复  |  直到 16 年前
        1
  •  3
  •   Richard Banks    16 年前

    模拟处于录制或回放模式。他们不可能处于“无”模式。

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

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

        2
  •  0
  •   Peter Morris    16 年前

    在我看来,最好使用“安排行为断言”格式。

    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();
    

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