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”)。返回(结果);它起作用了。