WebAPI Moq 设置不正确...获取调用必须具有相应的设置

WebAPI Moq Setup Incorrect...getting invocations must have a corresponding setup

我对如何设置 Mock 对象感到困惑(是的,我确实想要严格的)。我在其他时候做过,但这次略有不同。首先,这是一个 Web api,我想知道我的 Moq 上下文是否丢失和/或这个接口有一个 ref 参数,所以我确定我做错了什么。

存储库界面:

public interface IStuffRepository
{
...code snip....
Stuff GetStuff(Guid stuffId, ref List<ErrorInfo> errorInfo);
}

我的最小起订量实施:

[TestMethod]
public void AddValidStuffCorrectResponse()
{
   private Mock<IStuffRepository> _stuffRepository = new Mock<IStuffRepository>(MockBehavior.Strict);

   var errInfo = new List<ErrorInfo>(); //ref field

   _stuffRepository.Setup(x => x.GetStuff(It.IsAny<Guid>(), ref errInfo));

   AddStuffController = new AddStuffController(_stuffRepository.Object);

   AddStuffController.AddStuff();
   .....
}

正在测试的实际抛出错误的代码:

public HttpResponseMessage AddStuff()
{
  var errorInfo = new List<ErrorInfo>();
  ...snip...
  var stuff = stuffRepository.GetStuff(stuffId, ref errorInfo);
  ....
}

好的,看起来 Moq 不支持 Ref parameters right now

上的匹配

尽量不要使用引用参数。在您的情况下,异常可能比引用参数更有意义,因为您将其用于错误数据。