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
上的匹配
尽量不要使用引用参数。在您的情况下,异常可能比引用参数更有意义,因为您将其用于错误数据。
我对如何设置 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
上的匹配尽量不要使用引用参数。在您的情况下,异常可能比引用参数更有意义,因为您将其用于错误数据。