具有私人制定者的屬性
有時你想建立一個具有私有 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);