使用 `Xunit.DependencyInjection` 改造测试项目 (3)

使用 `Xunit.DependencyInjection` 改造测试项目

使用 `Xunit.DependencyInjection` 改造测试项目

使用 `Xunit.DependencyInjection` 改造测试项目

使用 `Xunit.DependencyInjection` 改造测试项目

Startup 支持的方法

CreateHostBuilder

public class Startup { public IHostBuilder CreateHostBuilder([AssemblyName assemblyName]) { } }

使用这个方法来自定义 IHostBuilder 的时候可以用这个方法,通常我们可能不会用到这个方法,可以通过 ConfigureHost 方法来配置 Host

ConfigureHost 配置 Host

public class Startup { public void ConfigureHost(IHostBuilder hostBuilder) { } }

通过 ConfigureHost 来配置 Host,可以通过这个方法配置 IConfiguration,也可以配置要注册的服务等

配置可以通过 IHostBuilder 的扩展方法 ConfigureAppConfiguration 来更新配置

ConfigureServices

public class Startup { public void ConfigureServices(IServiceCollection services[, HostBuilderContext context]) { } }

如果不需要读取 IConfiguration 可以通过直接使用 ConfigurationServices(IServiceCollection services) 方法

如果需要读取 IConfiguration,可以通过 ConfigureServices(IServiceCollection services, HostBuilderContext context) 方法通过 HostBuilderContext.Configuration 来访问配置对象 IConfiguration

Configure

public class Startup { public void Configure([IServiceProvider applicationServices]) { } }

Configure 方法可以没有参数,也支持所有注入的服务,和 asp.net core 里的 Configure 方法类似,通常可以在这个方法里做一些初始化配置

More

如果你有在使用 Xunit 的时候遇到上述问题,推荐你试一下 Xunit.DependenceInjection 这个项目,十分值得一试~~

Reference

https://github.com/pengweiqhca/Xunit.DependencyInjection

https://github.com/pengweiqhca/Xunit.DependencyInjection/blob/7.0/Xunit.DependencyInjection/DependencyInjectionTestFramework.cs

https://github.com/OpenReservation/ReservationServer

https://github.com/OpenReservation/ReservationServer/commit/d30e35116da0b8d4bf3e65f0a1dcabcad8fecae0

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zywzfs.html