如何使用 Rhino Mocks/简介
外观
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();