asp.net – Moq Parent没有默认构造函数.必须显式定义默认构造函
发布时间:2020-12-16 09:40:28 所属栏目:asp.Net 来源:网络整理
导读:我正在使用实体框架db第一种方法并生成edmx文件. 我试图在这里实现输入代码使用MOQ框架进行单元测试. 这是我的代码 [TestMethod] public void DeleteApplication() { var mockContext = new MockARMSContext(); var data = GetMemoryApplications(); var moc
我正在使用实体框架db第一种方法并生成edmx文件.
我试图在这里实现输入代码使用MOQ框架进行单元测试. 这是我的代码 [TestMethod] public void DeleteApplication() { var mockContext = new Mock<ARMSContext>(); var data = GetMemoryApplications(); var mockSet = new Mock<DbSet<Application>>(); mockSet.As<IQueryable<Application>>().Setup(m => m.Provider).Returns(data.Provider); mockSet.As<IQueryable<Application>>().Setup(m => m.Expression).Returns(data.Expression); mockSet.As<IQueryable<Application>>().Setup(m => m.ElementType).Returns(data.ElementType); mockSet.As<IQueryable<Application>>().Setup(m => m.GetEnumerator()).Returns(data.GetEnumerator()); var test=appcontroller.Delete(1,1); } 我在调用mockSet.Object时得到Parent没有..异常. 你能解决这个例外吗? 解决方法
根据您提供的内容,我无法看到您如何使用Mock< DbSet< Application>>,以及Mock< ARMSContext>.
以下是从MSDN“Testing with a mocking framework (EF6 onwards)”给出的示例,它将DbSet挂钩到Context: [TestMethod] public void GetAllBlogs_orders_by_name() { var data = new List<Blog> { new Blog { Name = "BBB" },new Blog { Name = "ZZZ" },new Blog { Name = "AAA" },}.AsQueryable(); var mockSet = new Mock<DbSet<Blog>>(); mockSet.As<IQueryable<Blog>>().Setup(m => m.Provider).Returns(data.Provider); mockSet.As<IQueryable<Blog>>().Setup(m => m.Expression).Returns(data.Expression); mockSet.As<IQueryable<Blog>>().Setup(m => m.ElementType).Returns(data.ElementType); mockSet.As<IQueryable<Blog>>().Setup(m => m.GetEnumerator()).Returns(data.GetEnumerator()); var mockContext = new Mock<BloggingContext>(); mockContext.Setup(c => c.Blogs).Returns(mockSet.Object); var service = new BlogService(mockContext.Object); var blogs = service.GetAllBlogs(); Assert.AreEqual(3,blogs.Count); Assert.AreEqual("AAA",blogs[0].Name); Assert.AreEqual("BBB",blogs[1].Name); Assert.AreEqual("ZZZ",blogs[2].Name); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 在asp.net mvc上传文件代码后,通过服务器获取“连接重置”错
- asp.net-mvc – 使用Viewbag绑定DropdownlistFor
- asp.net – 为什么HttpUtility.UrlPathEncode标记为“不使用
- 如何在.NET中使用TreeView控件创建三态复选框?
- asp.net – 为什么<%=%>标记呈现为“<%=%>”?
- .net – 如何将变量传递给SqlDataSource的SelectCommand?
- 使用Visio Viewer载入数据库中的Visio图
- asp.net-mvc – Ninject MVC和WCF扩展不能与InRequestScope
- asp.net – gridview编辑需要单击两次
- asp.net – 在Visual Studio中的单独设计和源选项卡中查看.
推荐文章
站长推荐
- 在Azure网络应用程序中显示ASP.NET 5错误页面
- 在ASP.NET中托管时找不到端点
- asp.net-mvc – asp.net MVC扩展DataAnnotions
- asp.net-mvc – MVC WebGrid设置呈现的ID
- asp.net-core – 为什么要在本地运行IIS Express
- asp.net – 通过Web界面查看事件日志
- asp.net-mvc – 如何使用Simple Injector装饰ASP
- asp.net – 在web用户控件中传递int数组作为参数
- asp.net-mvc – MVC 4从基本路由中删除“home”
- 如何在ASP.NET MVC中渲染HTML字符串?
热点阅读