C# 如何在c中模拟具有动态类型的方法#
嗨,我有一个接口中的方法C# 如何在c中模拟具有动态类型的方法#,c#,dynamic,mocking,moq,C#,Dynamic,Mocking,Moq,嗨,我有一个接口中的方法 dynamic SendCancelRequest(dynamic request, string contentType = "application/json"); 我想嘲弄它,我用的是最小起订量 var inputModel = new { id = consumerId, userip = getUserIp(), Source = "x-source" }; var result = new { Name = "Acknowledge
dynamic SendCancelRequest(dynamic request, string contentType = "application/json");
我想嘲弄它,我用的是最小起订量
var inputModel = new
{
id = consumerId,
userip = getUserIp(),
Source = "x-source"
};
var result = new
{
Name = "Acknowledge"
};
_mock.Setup(c => c.SendCancelRequest(inputmodel,"application/json")).Returns(result);
调试实际行时,我看到要返回的值始终为null
dynamic message = MyRepository.SendCancelRequest(inputModel);
消息的值为空。而且输入模型的值也没有反映出来,现在我只需要消息的值
我遗漏了什么?我该如何修复它
_mock.Setup(c => c.SendCancelRequest(inputmodel,"application/json")).Returns(result);
不起作用,但以下代码起作用:
_mock.Setup(c => c.SendCancelRequest(It.IsAny<object>(),"application/json")).Returns(result);
\u mock.Setup(c=>c.SendCancelRequest(It.IsAny(),“application/json”)。返回(结果);
显示正在测试的方法。很可能测试中提供的参数与设置不匹配,因此模拟方法不会按预期执行。感谢Nikosi,我后来发现了这一点。如果我写_mock.Setup(c=>c.SendCancelRequest(It.IsAny,“application/json”)。返回(result);而不是_mock.Setup(c=>c.SendCancelRequest(inputmodel,“application/json”)。返回(结果);它起作用了。