当前位置: 首页 > 编程语言 > C#

Rhino-模拟类而不是覆盖虚拟方法Share

时间:2023-04-10 23:18:00 C#

Rhino-模拟类而不是覆盖虚拟方法我知道我可以简单地删除virtual修饰符,但我实际上想稍后删除此方法的行为。换句话说,除了去掉virtual修饰符,我如何通过这个测试:namespaceSandbox{publicclassclassToMock{publicintIntProperty{get;放;}publicvirtualvoidDoIt(){IntProperty=1;}}publicclassFoo{staticvoidMain(string[]args){classToMockc=MockRepository.GenerateMock();c.DoIt();Assert.AreEqual(1,c.IntProperty);Console.WriteLine("通过");你想使用部分模拟,它只是在你创建期望时覆盖方法:classToMockc=MockRepository.GeneratePartialMock();c.DoIt();Assert.AreEqual(1,c.IntProperty);我在这里看到了一些事情。首先,你在嘲笑一个具体的班级。在大多数情况下,这是一个坏主意,通常表明您的设计存在缺陷(恕我直言)。如果可能,提取一个接口并模拟它。其次,虽然模拟在技术上覆盖了一个虚拟方法,但通过提供一个实现(在这种情况下什么也不做),最好考虑它所做的实际上是模拟/伪造该方法。通常,在模拟一个对象时,您需要为测试用例对象所需的每个属性或方法提供一个实现。更新:另外,我认为删除“虚拟”将阻止框架对该方法做任何事情。以上就是C#学习教程:Rhino——模拟类而不是覆盖虚方法。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: