据我所知,SetupSet是在Moq中设置属性的旧方法。它现在是obsolette但是我的intellisense显示两者都没有标记为Obsolette。谁能指出我们之间的实际区别?
答案 0 :(得分:17)
我可能发现了以下差异之一。
如果您尝试模拟Readonly属性,则必须使用SetupGet,因为在这种情况下SetupProperty不起作用。如果您想设置期望,SetupProperty可用于非只读属性。
例如,下面不起作用
public interface IXyz
{
int Id { get; }
}
//Test Side Code
var _mock = new Mock<IXyz>();
_mock.SetupProperty(x => x.Id, 1054);
如果您尝试执行上面的代码,它会说出来 System.ArgumentException:Property IXyz.Id是只读的
因此,如果您将代码更改为以下代码,则可以使用
_mock.SetupGet(x => x.Id).Returns(1054);
答案 1 :(得分:13)