我创建一个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));

}

08-03 15:55