具有私人制定者的属性

有时你想创建一个具有私有 setter 的类的模拟:

public class MockTarget
{
    public virtual string PropertyToMock { get; private set; }
}

或者只定义 getter 的接口:

public interface MockTarget
{
    string PropertyToMock { get; }
}

在这两种情况下,你都可以忽略 setter,只需设置属性 getter 即可返回所需的值:

var mock = new Mock<MockTarget>();
mock.SetupGet(x => x.PropertyToMock).Returns("ExpectedValue");

Assert.AreEqual("ExpectedValue", mock.Object.PropertyToMock);