web-dev-qa-db-ja.com

moqを使用して仮想読み取り専用プロパティをモックする

手作業で行うことはできますが、これを行う方法が見つかりませんでした。moqを使用しないのはなぜですか。

42
gkdm

このクラスを考えると

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は「foo」ではなく「bar」を返すようになりました。

78
Mark Seemann