如果我正在模拟一个类,如下所示,有什么方法可以让模拟不覆盖虚拟方法?我知道我可以简单地删除 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/