RhinoMocks - 模拟受保护的虚拟成员

时间:2010-06-16 21:47:10

标签: mocking rhino-mocks

据我所知,RM应该模拟派生类可以访问的任何内容。由于可以从子类访问受保护的虚拟成员,因此它不应该是可模拟的吗?

我的理解是RM不支持模拟受保护的虚拟成员。

2 个答案:

答案 0 :(得分:2)

如果我想模拟受保护的成员,我通常会跳过Rhino Mocks,并使用我自己的假实现进行子类化。

答案 1 :(得分:1)

  

据我所知,RM应该嘲笑   任何可以被访问的东西   衍生类。

没有。这个想法是你应该能够模拟被测试类的依赖关系的行为。这里使用的单词 dependencies dependency injection中的含义相同。

在测试驱动开发中,通常favors composition over inheritance。依赖关系通常隐藏在接口后面。

  

我的理解是RM没有   支持模拟受保护的虚拟   成员。

这是对的。在设置行为时,有两种简洁且类型安全的方法来指定您正在讨论的类成员:通过在记录模式下调用成员,或使用lambda表达式。 Rhino Mocks支持两者,但两者都不适用于受保护的成员。