我为我的Generate()方法向Moq提供了什么';s委托参数

本文关键字:什么 参数 Generate 我的 Moq 方法 | 更新日期: 2023-09-27 18:28:23

我有一个正在重构的遗留系统。

我的目标大致如下:

public class SUT
{
  public delegate SaveStuff(SomeObject obj);
  public void Generate(SaveStuff saver)
  {
    // Do stuff
    var obj = new SomeObject();
    saver(obj);
  }
}

我对使用Moq非常陌生,我想计算"saver"被调用的次数。

我在SO上看到了很多例子,但对如何设置测试感到困惑

[Test]
public void TestDelegateCall()
{
  var sut = new SUT();
  // Prepare SUT's State...
  var callCount = 0;
  sut.Generate(??);
  Assert.AreEqual(callCount,2);
}

什么去了哪里??是

我为我的Generate()方法向Moq提供了什么';s委托参数

我不知道你需要在这里使用最小起订量,我相信你可以做以下事情,并利用匿名方法和闭包:)

var callCount = 0
sut.Generate(obj=>callCount++);

如果这不起作用,那么您可以直接使用显式委托设置:

var callCount = 0
SaveStuff actionCounter = delegate(SomeObject obj)
    {
        callCount++;
    };
sut.Generate(actionCounter);