If I read your question correctly, do you seem to have this situation?
public void DoTheCalculation(ICalculator calculator) {
calculator.Calculate(this );
}
In this case, you can assert the arguments passed to the Mocked interface using the It.Is method, which takes a predicate:
[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));
}
source
share