c# - 使用 Moq 模拟返回动态返回类型的方法

标签 c# mocking moq

给定以下界面:

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' 不包含“返回”的定义

谁能告诉我我做错了什么?

最佳答案

我能够创建一个 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);

关于c# - 使用 Moq 模拟返回动态返回类型的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34444011/

相关文章:

c++ - 如何谷歌模拟从结构调用的方法

C# - 读取二进制中的十六进制字节序列

c# - ASP.NET MVC : Validation messages set in TryUpdateModel not showning ValidationSummary

c# - 防止调整大小选择聚焦 ComboBox 中的所有文本

go - 如何模拟 gRPC api 以与 golang 进行集成测试

c# - 如何在我的单元测试中从原始 POST 请求断言 StatusCode?

c# - 如何捕获Photoshop的文档区域

java - 在 junit 测试期间禁用记录器?

c# - 将 Autofac 和 Moqs 与委托(delegate)工厂一起使用

testing - 将测试替身与 DbEntityEntry 和 DbPropertyEntry 一起使用