我正在尝试为我的ASP5 MVC6
应用程序创建集成测试。
在我的集成测试中,我注册了所有类,并在Startup
类中添加了一些MVC特定的东西:
_services.AddEntityFramework()
.AddSqlServer()
.AddDbContext<ApplicationDbContext>(
options =>
options.UseSqlServer(_configuration[ServerModulesLoader.DataDefaultConnectionConnectionstringConfigurationKey]));
_services.AddIdentity<ApplicationUser, IdentityRole>()
.AddEntityFrameworkStores<ApplicationDbContext>()
.AddDefaultTokenProviders();
_services.AddCors();
_services.AddMvc();
一切正常,直到IUrlHelper
或IHttpContextAccessor
出现在依赖关系树的某处。
这就是我为测试创建控制器的方法:
// register all my classes
// run the code from above
_provider = _services.BuildServiceProvider();
ActivatorUtilities.GetServiceOrCreateInstance<T>(_provider);
现在我为这些接口注册了模拟,但我宁愿使用原始实现。
我错过了什么?