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

标签 c# rhino-mocks rhino-mocks-3.5

如果我正在模拟一个类,如下所示,有什么方法可以让模拟覆盖虚拟方法?我知道我可以简单地删除 virtual 修饰符,但实际上我想在以后删除此方法的行为。

换句话说,除了删除 virtual 修饰符之外,我怎样才能让这个测试通过:

namespace Sandbox {
    public class classToMock {
       public int IntProperty { get; set; }

       public virtual void DoIt() {
           IntProperty = 1;
       }
}

public class Foo {
    static void Main(string[] args) {
        classToMock c = MockRepository.GenerateMock<classToMock>();
        c.DoIt();

        Assert.AreEqual(1, c.IntProperty);
        Console.WriteLine("Pass");
    }
}

最佳答案

您想使用 partial mock ,它只会在您创建期望时覆盖该方法:

classToMock c = MockRepository.GeneratePartialMock<classToMock>();
c.DoIt();

Assert.AreEqual(1, c.IntProperty);

关于c# - Rhino - 模拟类而不是覆盖虚拟方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5732611/

相关文章:

c# - 什么是 Rhino Mocks Repeat?

c# - 在 RhinoMocks 中模拟返回密封类的方法

c# - 犀牛模拟 : AssertWasCalled doesn't work on Stub

c# - 如何在RhinoMocks中按指定条件从方法返回值?

c# - Rails 和 ASP.NET 单点登录

c# - 使用 Silverlight 捕获音频

c# - C++程序中引用C#库,其他PC不能

C# MS Access oledbcommand.executeNonQuery UPDATE 没有错误,没有变化

c# - 模拟类和接口(interface)之间有什么区别?

c# - Rhinomocks - 模拟代表