使用moq模拟虚拟只读属性

时间:2009-09-21 12:02:46

标签: unit-testing tdd mocking moq

我找不到办法做到这一点,虽然这可以手工完成,为什么不用moq?

2 个答案:

答案 0 :(得分:77)

鉴于此课程

public abstract class MyAbstraction
{
    public virtual string Foo
    {
        get { return "foo"; }
    }
}

您可以像这样设置Foo(只读属性):

var stub = new Mock<MyAbstraction>();
stub.SetupGet(x => x.Foo).Returns("bar");

stub.Object.Foo现在将返回“bar”而不是“foo”。

答案 1 :(得分:1)

您需要确保属性是虚拟的才能使它起作用。