语言

WebApplicationFactory<TEntryPoint> 类

定义

用于在内存中启动应用程序的工厂,以便进行功能端到端测试。

generic <typename TEntryPoint>
 where TEntryPoint : classpublic ref class WebApplicationFactory : IDisposable
public class WebApplicationFactory<TEntryPoint> : IAsyncDisposable, IDisposable where TEntryPoint : class
public class WebApplicationFactory<TEntryPoint> : IDisposable where TEntryPoint : class
type WebApplicationFactory<'EntryPoint (requires 'EntryPoint : null)> = class
    interface IDisposable
    interface IAsyncDisposable
type WebApplicationFactory<'EntryPoint (requires 'EntryPoint : null)> = class
    interface IDisposable
Public Class WebApplicationFactory(Of TEntryPoint)
Implements IAsyncDisposable, IDisposable
Public Class WebApplicationFactory(Of TEntryPoint)
Implements IDisposable

类型参数

TEntryPoint

应用程序的入口点程序集中的类型。 通常可以使用 Startup 或 Program 类。

继承
WebApplicationFactory<TEntryPoint>
实现

构造函数

名称 说明
WebApplicationFactory<TEntryPoint>()

创建 WebApplicationFactory<TEntryPoint> 的实例。 此工厂可用于使用 MVC 应用程序定义的实例以及TestServer一个或多个HttpClient用于发送到HttpRequestMessage该实例的TestServerTEntryPoint实例。 将WebApplicationFactory<TEntryPoint>查找程序集的TEntryPoint入口点类,并通过调用IWebHostBuilder CreateWebHostBuilder(string [] args)TEntryPoint来初始化应用程序。

此构造函数将通过搜索 WebApplicationFactoryContentRootAttribute 包含函数测试且键等于 TEntryPoint 程序集 FullName的程序集来推断应用程序内容根路径。 如果找不到具有正确键的属性, WebApplicationFactory<TEntryPoint> 将回退到搜索解决方案文件(*.sln),然后将程序集名称追加 TEntryPoint 到解决方案目录。 应用程序根目录将用于发现视图和内容文件。

应用程序程序集将从包含 TEntryPoint的程序集的依赖项上下文中加载。 这意味着将加载包含 TEntryPoint 的程序集的项目依赖项作为应用程序程序集。

属性

名称 说明
ClientOptions

WebApplicationFactoryClientOptions获取由 CreateClient().

Factories

IReadOnlyList<T>通过进一步自定义IWebHostBuilder调用WithWebHostBuilder(Action<IWebHostBuilder>)时从此工厂创建的工厂。

Server

TestServer获取由此WebApplicationFactory<TEntryPoint>创建的 。

Services

IServiceProvider获取由与此WebApplicationFactory<TEntryPoint>关联的服务器创建的 。

方法

名称 说明
ConfigureClient(HttpClient)

配置 HttpClient 由此 WebApplicationFactory<TEntryPoint>创建的实例。

ConfigureWebApplicationBuilder(IHostApplicationBuilder)

为固定装置配置应用程序生成器提供了机会。 在入口点调用 WebApplication.CreateBuilder 期间,将非常早地调用此方法。

ConfigureWebHost(IWebHostBuilder)

为固定装置提供在生成应用程序之前配置应用程序的机会。

CreateClient()

创建自动遵循重定向和处理 Cookie 的实例 HttpClient 。

CreateClient(WebApplicationFactoryClientOptions)

创建自动遵循重定向和处理 Cookie 的实例 HttpClient 。

CreateDefaultClient(DelegatingHandler[])

创建可用于发送到HttpRequestMessage服务器的新实例HttpClient。 实例的 HttpClient 基址将设置为 http://localhost。

CreateDefaultClient(Uri, DelegatingHandler[])

创建可用于发送到HttpRequestMessage服务器的新实例HttpClient。

CreateHost(IHostBuilder)

使用 IHost 启动的应用程序创建 builder。 这仅适用于使用 IHostBuilder的应用程序。 IWebHostBuilder基于应用程序将改用CreateServer(IWebHostBuilder)。

CreateHostBuilder()

创建用于设置TestServer的项IHostBuilder。

CreateServer(IServiceProvider)

TestServer使用IServiceProvider启动的应用程序创建。 这仅适用于使用 IHostBuilder的应用程序。 IWebHostBuilder基于应用程序将改用CreateHost(IHostBuilder)。

CreateServer(IWebHostBuilder)
已过时.

使用 TestServer 启动的应用程序创建 builder。 这仅适用于使用 IWebHostBuilder的应用程序。 IHostBuilder基于应用程序将改用CreateHost(IHostBuilder)。

CreateWebHostBuilder()

创建用于设置TestServer的项IWebHostBuilder。

Dispose()

用于在内存中启动应用程序的工厂,以便进行功能端到端测试。

Dispose(Boolean)

执行与释放、释放或重置非托管资源关联的应用程序定义任务。

DisposeAsync()

用于在内存中启动应用程序的工厂,以便进行功能端到端测试。

Finalize()

完成类的 WebApplicationFactory<TEntryPoint> 实例。

GetTestAssemblies()

获取包含功能测试的程序集。 WebApplicationFactoryContentRootAttribute应用于这些程序集定义要用于给定TEntryPoint的内容根目录。

StartServer()

通过配置主机生成器来初始化实例。

UseKestrel()

将工厂配置为使用 Kestrel 作为服务器。

UseKestrel(Action<KestrelServerOptions>)

将工厂配置为使用 Kestrel 作为服务器。

UseKestrel(Int32)

将工厂配置为使用 Kestrel 作为服务器。

WithWebHostBuilder(Action<IWebHostBuilder>)

使用进一WebApplicationFactory<TEntryPoint>IWebHostBuilder步自定义configuration的新项。

适用于