Rhino Mock Expect() 方法触发对预期函数的调用
Rhino Mock Expect() method triggers call on expected function
我在 C# 中使用 Rhino Mocks 3.6,我在模拟对象而不是接口时遇到问题。
有人可以解释为什么在定义期望时实际上会调用方法吗?
public class MockingBird
{
public void TestMethod()
{
throw new Exception("Method call!");
}
}
...
[TestMethod]
public void TestMock()
{
var mockedMockingBird = MockRepository.GenerateStrictMock<MockingBird>();
mockedMockingBird.Expect(x => x.TestMethod());
}
您不能模拟不可覆盖的方法。在创建模拟实例 Rhino 时执行以下操作:
- 它在运行时生成动态程序集(使用 Castle Dynamic Proxy 库来实现)
- 在该程序集中,Rhino 创建了一个新类型,派生自您要模拟的类型
- 该新类型的成员被覆盖以插入 recording/stubbing 逻辑
实际上,您只能模拟 类 的 virtual
/abstract
方法和接口的任何成员。
请记住,此限制存在于所有免费模拟框架中。
我在 C# 中使用 Rhino Mocks 3.6,我在模拟对象而不是接口时遇到问题。 有人可以解释为什么在定义期望时实际上会调用方法吗?
public class MockingBird
{
public void TestMethod()
{
throw new Exception("Method call!");
}
}
...
[TestMethod]
public void TestMock()
{
var mockedMockingBird = MockRepository.GenerateStrictMock<MockingBird>();
mockedMockingBird.Expect(x => x.TestMethod());
}
您不能模拟不可覆盖的方法。在创建模拟实例 Rhino 时执行以下操作:
- 它在运行时生成动态程序集(使用 Castle Dynamic Proxy 库来实现)
- 在该程序集中,Rhino 创建了一个新类型,派生自您要模拟的类型
- 该新类型的成员被覆盖以插入 recording/stubbing 逻辑
实际上,您只能模拟 类 的 virtual
/abstract
方法和接口的任何成员。
请记住,此限制存在于所有免费模拟框架中。