我创建一个MOQ对象
把它传给我的班级
调用它并传递一个对象。
如何访问该对象以查看是否设置了正确的属性?
最佳答案
如果我正确阅读了您的问题,您似乎遇到了这种情况?
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));
}