具有私人制定者的屬性

有時你想建立一個具有私有 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);