如何在c#中使用动态类型模拟方法

时间:2017-01-14 20:09:15

标签: c# dynamic mocking moq

嗨我在界面中有一个方法

dynamic SendCancelRequest(dynamic request, string contentType = "application/json");

我想嘲笑它,我正在使用moq

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);

message的值为null。此外,输入模型的值也没有反映出来,现在我只需要消息的值 我错过了怎么解决它?

1 个答案:

答案 0 :(得分:0)

_mock.Setup(c => c.SendCancelRequest(inputmodel,"application/json")).Returns(result); 

不起作用,但下面的代码有效:

_mock.Setup(c => c.SendCancelRequest(It.IsAny<object>(),"application/json")).Returns(result);