给出以下界面:
public interface IApiHelper
{
dynamic CallApi(string url);
}
我已经宣布了一个实例化的Mock<IApiHelper> _apiHelperMock
我试图编写一个返回Success = true属性的测试,以模仿JSON结果。我的设置如下:
_apiHelperMock.Setup(o => o.CallApi(It.IsAny<string>())).Returns((dynamic)new { Success = true });
但是在尝试运行测试时出现以下错误: 的 Moq.Language.Flow.ISetup&#39;不包含&#39;退货&#39;
的定义谁能告诉我我在这里做错了什么?
答案 0 :(得分:5)
我能够创建ExpandoObject
并将其投射到object
。
dynamic userInfo = new ExpandoObject();
dynamic user1 = new ExpandoObject();
user1.title = "aaa";
dynamic user2 = new ExpandoObject();
user2.title = "bbb";
userInfo.groups = new List<ExpandoObject> { user1 , user2 };
var endpointMock = new Mock<IRestEndpointHandler>();
endpointMock.Setup(c => c.RequestJsonDynamicGet(It.IsAny<Uri>())).Returns((object)userInfo);
答案 1 :(得分:2)
您不必将匿名类型对象强制转换为dynamic
。
试试这个:
_apiHelperMock
.Setup(o => o.CallApi(It.IsAny<string>()))
.Returns(new { Success = true });
答案 2 :(得分:0)
或者只返回Dictionary<string,string>
:)