我创建了一个MOQ对象
将它传递给我的班级
调用它并传入一个对象。
如何访问此对象以查看是否设置了正确的属性?
答案 0 :(得分:2)
如果我正确地阅读了您的问题,您似乎有这样的情况吗?
public void DoTheCalculation(ICalculator calculator) {
calculator.Calculate(this /* Or any other object */);
}
在这种情况下,您可以使用接受谓词的It.Is方法断言传递给Mocked接口的参数:
[TestMethod]
public void DoTheCalculation_DoesWhateverItShouldDo() {
Mock<ICalculator> calcMock = new Mock<ICalculator>();
CalculationParameters params = new CalculationParmeters(1, 2);
params.DoTheCalculation(calcMock.Object);
calcMock.Verify(c => c.Calculate(It.Is<CalculationParameters>(
c => c.LeftHandSide == 1
&& c.RightHandSide == 2));
}
答案 1 :(得分:1)
您可以在模拟对象上使用.VerifySet()
方法。例如
mockObject.VerifySet(o => o.Name = "NameSetInMyClass");
如果设置不正确,则会引发异常。
在quick start here中阅读更多内容。
答案 2 :(得分:1)
你的问题有点令人困惑,目前还不清楚你在最后一句中指的是什么对象。
但是,每个Moq包装器都有一个“Object”属性,该属性属于您正在模拟的类型。您只需查看该属性即可访问它。
var myMock = new Mock<MyObj>();
var myProp = myMock.Object.MyProperty;