c# - 最小起订量和您传递的参数

标签 c# .net unit-testing moq

我创建一个 MOQ 对象

传给我的类(class)

调用它并传入一个对象。

我怎样才能访问这个对象以查看是否设置了正确的属性?

最佳答案

如果我没看错你的问题,你似乎遇到了这样的情况?

public void DoTheCalculation(ICalculator calculator) {
   calculator.Calculate(this /* Or any other object */);
}

在这种情况下,您可以使用接受谓词的 It.Is 方法断言传递给 Mocked 接口(interface)的参数:

[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));

}

关于c# - 最小起订量和您传递的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2976818/

相关文章:

c# - .NET 4.5 如何创建此自定义声明类型?

c# - 第三方 Visual Studio 样式表/CSS 编辑器

c# - 不等待 lambda foreach 中的异步调用

java - 将任意流连接到标准输入

unit-testing - 通过AutoFixture创建TestClass时如何在某些属性上固定范围

c# - CheckedListBox.SelectedItems.Count = 1?

c# - 什么是NullReferenceException,我该如何解决?

c# - 当使用自定义契约(Contract)解析器而不是 JsonConverter 属性时,自定义 JsonConverter 被忽略以进行反序列化

c# - WaitHandle.WaitAny 以匹配 WaitForMultipleObjects 功能

java - 访问私有(private)字段以进行 junit 测试