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

时间:2015-05-28 15:43:04

标签: asp.net-web-api moq

我对如何设置我的Mock对象感到困惑(是的,我确实要严格)。我已经做过其他时间,但这有点不同。首先这是一个web api,我想知道我的Moq上下文是否丢失和/或这个界面有一个ref参数,所以我确定我做错了。

存储库界面:

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

我的Moq实施:

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

1 个答案:

答案 0 :(得分:1)

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

上的匹配

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