具有私人制定者的属性
有时你想创建一个具有私有 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);