跳转到内容

如何使用 Rhino Mocks/简介

25% developed
来自维基教科书,开放的书,开放的世界

基本用法

[编辑 | 编辑源代码]

1. 创建一个模拟存储库

MockRepository mocks = new MockRepository();

2. 将一个模拟对象添加到存储库中

ISomeInterface robot = (ISomeInterface)mocks.CreateMock(typeof(ISomeInterface));

如果您使用的是 C# 2.0,您可以使用泛型版本,避免向上转型

ISomeInterface robot = mocks.CreateMock<ISomeInterface>();

3. “记录”您希望在模拟对象上调用的方法

 // this method has a return type, so wrap it with Expect.Call
 Expect.Call(robot.SendCommand("Wake Up")).Return("Groan");
 
 // this method has void return type, so simply call it
 robot.Poke();

请注意,这些调用中提供的参数值代表我们希望模拟对象被调用的值。类似地,返回值代表当调用此方法时模拟对象将返回的值。

您可以预期一个方法被多次调用

 // again, methods that return values use Expect.Call
 Expect.Call(robot.SendCommand("Wake Up")).Return("Groan").Repeat.Twice();
 
 // when no return type, any extra information about the method call
 // is provided immediately after via static methods on LastCall
 robot.Poke();
 LastCall.On(robot).Repeat.Twice();

4. 将模拟对象设置为“回放”状态,在调用时,它将回放刚刚记录的操作。

mocks.ReplayAll();

5. 调用使用模拟对象的代码。

theButler.GetRobotReady();

6. 检查是否对模拟对象进行了所有调用。

 mocks.VerifyAll();


华夏公益教科书