asp.net-mvc – 与Ninject集成测试
发布时间:2020-12-16 03:27:25 所属栏目:asp.Net 来源:网络整理
导读:我熟悉这个事实,我不应该在单元测试中使用依赖注入,所以我可以独立地对每个层进行单元测试. 不过,我想为我的控制器创建集成测试.因此,我需要从单元测试中将我的存储库注入控制器. 我遵循使用T4脚本的通用方法,为每个控制器创建一个测试类,包含每个ActionResu
我熟悉这个事实,我不应该在单元测试中使用依赖注入,所以我可以独立地对每个层进行单元测试.
不过,我想为我的控制器创建集成测试.因此,我需要从单元测试中将我的存储库注入控制器. 我遵循使用T4脚本的通用方法,为每个控制器创建一个测试类,包含每个ActionResult的测试方法.这个测试方法应该简单地调用方法,以确保没有异常抛出到表面. 由于使用此T4脚本,我无法手动将存储库提供给控制器.我需要利用依赖注入. 根据我以前的经验,这应该工作,但我一直得到错误: Unable to get default constructor for class <<UnitTest>> 我生成的类目前看起来像这样: [TestClass] public class TestControllersHomeController { private EL.NET.Web.Controllers.HomeController c; //setup public TestControllersHomeController(Project.Controllers.HomeController c) { this.c = c; } [ClassInitialize] public void ClassInitialize() { var kernel = NinjectWebCommon.CreatePublicKernel(); kernel.Bind<TestControllersHomeController>().ToSelf(); kernel.Bind<Project.Controllers.HomeController>().ToSelf(); } [TestMethod] public void TestIndex() { var result = c.Index(); Assert.IsNotNull(result); } 编辑: 我已经发现,可以使用IKernel的GetService()方法加载存储库.但对于会员提供商,这不起作用. 解决方法
单元测试必须具有默认构造函数:
[TestClass] public class TestControllersHomeController { private HomeController _sut; [TestInitialize] public void MyTestInitialize() { var kernel = NinjectWebCommon.CreatePublicKernel(); _sut = kernel.Resolve<HomeController>(); } [TestMethod] public void TestIndex() { var result = _sut.Index(); Assert.IsNotNull(result); } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 实体框架 – 使用伪造的DbContext和Autofixture以及Moq进行
- asp.net-mvc – 在MVC3中,我应该有独立的“编辑”模型与“显
- 在当前的HTTPContext中生成一个新的ASP.NET会话
- 什么{“d”:“”}表示在asp.net webservice响应中
- asp-classic – 如何在经典ASP中将数据POST到远程URL?
- ASP.NET Core远程调试
- .net – 在项目之间共享MasterPages的最佳方法是什么?
- asp.net – 无法为’localhost’生成绑定重定向.已添加具有
- asp.net-mvc – Unity和Random“索引超出了数组的范围”异常
- asp.net – 循环通过gridview并获取数据键值
推荐文章
站长推荐
- asp.net-mvc – Razor视图引擎.cshtml页面中的Ou
- asp.net-mvc – 并不总是创建__RequestVerificat
- asp.net-mvc – 在ASP.NET MVC Razor View中显示
- 如何设置asp.net下拉列表的样式
- ef-code-first – 如何首先使用代码向Identity默
- asp.net-mvc-3 – 从TempData获取值到视图中
- stored-procedures – 使用经典的asp从oracle 11
- ASP.NET MVC学习之NuGet在VS中的运用浅谈
- asp.net-mvc-4 – 在Startup.Auth.cs之外配置的C
- .net – 404控制器在外部组件
热点阅读