public class WebHostEnvironment : IWebHostEnvironment { public string WebRootPath { get => Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "wwwroot"); } public IFileProvider WebRootFileProvider { get; set; } public string EnvironmentName { get; set; } public string ApplicationName { get; set; } public string ContentRootPath { get => AppDomain.CurrentDomain.BaseDirectory; } public IFileProvider ContentRootFileProvider { get; set; } } public class HomeControllerUnitTest:TestBase { HomeController homeController; public HomeControllerUnitTest() { //从容器注入服务 homeController = new HomeController( Provider.GetRequiredService(), Provider.GetRequiredService()); } } //测试环境 public class TestBase { //依赖注入容器 public IServiceCollection Services; //从容器获取服务 public IServiceProvider Provider;
public TestBase()
{
//创建容器
Services = new ServiceCollection();
//....注册服务
Provider = Services.BuildServiceProvider();
}
}
可以和`ASP.NET core`的做法一样。它准备了一个依赖注入容器,那我也准备一个依赖注入容器。**WebAPI**还构造了一个web主机。但是单元测试是独立运行的,就不需要创建一个web主机了。在单元测试项目种添加了一个`TestBase基类`,用于创建容器,注册服务,以供测试方法使用。
https://www.laipuhuo.com/goodsDetail/034a5cfd025543948be22c42d9498508.html
www.laipuhuo.com/goodsDetail… www.laipuhuo.com/goodsDetail… www.laipuhuo.com/goodsDetail…