Sprache

WebApplicationFactory<TEntryPoint> Klasse

Definition

Factory zum Bootstrapping einer Anwendung im Arbeitsspeicher für funktionale End-to-End-Tests.

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

Typparameter

TEntryPoint

Ein Typ in der Einstiegspunktassembly der Anwendung. In der Regel können die Start- oder Programmklassen verwendet werden.

Vererbung
WebApplicationFactory<TEntryPoint>
Implementiert

Konstruktoren

Name Beschreibung
WebApplicationFactory<TEntryPoint>()

Erstellt eine Instanz von WebApplicationFactory<TEntryPoint>. Diese Factory kann verwendet werden, um eine TestServer Instanz mithilfe der MVC-Anwendung zu erstellen, die von TEntryPoint und einer oder HttpClient mehreren Instanzen verwendet wird, die zum Senden HttpRequestMessage an die TestServer. Die WebApplicationFactory<TEntryPoint> Einstiegspunktklasse der TEntryPoint Assembly wird durch Aufrufen IWebHostBuilder CreateWebHostBuilder(string [] args)TEntryPointder Anwendung gefunden und initialisiert.

Dieser Konstruktor leitet den Stammpfad des Anwendungsinhalts ab, indem nach einer WebApplicationFactoryContentRootAttribute Assembly gesucht wird, die die Funktionstests mit einem Schlüssel enthält, der der TEntryPoint Assembly FullNameentspricht. Falls ein Attribut mit dem richtigen Schlüssel nicht gefunden werden kann, WebApplicationFactory<TEntryPoint> greifen Sie auf die Suche nach einer Lösungsdatei (*.sln) zurück und fügen dann den Assemblynamen an das Lösungsverzeichnis an TEntryPoint . Das Stammverzeichnis der Anwendung wird verwendet, um Ansichten und Inhaltsdateien zu ermitteln.

Die Anwendungsassemblys werden aus dem Abhängigkeitskontext der Assembly geladen, die enthält TEntryPoint. Dies bedeutet, dass Projektabhängigkeiten der Assembly, die enthalten TEntryPoint , als Anwendungsassemblys geladen werden.

Eigenschaften

Name Beschreibung
ClientOptions

Ruft die WebApplicationFactoryClientOptions verwendete von CreateClient().

Factories

Ruft die IReadOnlyList<T> von dieser Factory erstellten Fabriken ab, indem Sie die IWebHostBuilder beim Aufrufen WithWebHostBuilder(Action<IWebHostBuilder>)weiter anpassen.

Server

Ruft die TestServer von diesem WebApplicationFactory<TEntryPoint>erstellt .

Services

Ruft die IServiceProvider vom Server erstellt, der diesem WebApplicationFactory<TEntryPoint>zugeordnet ist.

Methoden

Name Beschreibung
ConfigureClient(HttpClient)

HttpClient Konfiguriert Instanzen, die von diesem WebApplicationFactory<TEntryPoint>erstellt werden.

ConfigureWebApplicationBuilder(IHostApplicationBuilder)

Bietet eine Vorrichtung die Möglichkeit, den Anwendungs-Generator zu konfigurieren. Diese Methode wird sehr früh aufgerufen, während des Aufrufs des Einstiegspunkts an WebApplication.CreateBuilder.

ConfigureWebHost(IWebHostBuilder)

Bietet eine Vorrichtung die Möglichkeit, die Anwendung zu konfigurieren, bevor sie erstellt wird.

CreateClient()

Erstellt eine Instanz davon, die HttpClient automatisch auf Umleitungen folgt und Cookies verarbeitet.

CreateClient(WebApplicationFactoryClientOptions)

Erstellt eine Instanz davon, die HttpClient automatisch auf Umleitungen folgt und Cookies verarbeitet.

CreateDefaultClient(DelegatingHandler[])

Erstellt eine neue Instanz einer HttpClient , die zum Senden HttpRequestMessage an den Server verwendet werden kann. Die Basisadresse der HttpClient Instanz wird auf http://localhost.

CreateDefaultClient(Uri, DelegatingHandler[])

Erstellt eine neue Instanz einer HttpClient , die zum Senden HttpRequestMessage an den Server verwendet werden kann.

CreateHost(IHostBuilder)

Erstellt die IHost mit der bootstrapped-Anwendung in builder. Dies wird nur für Anwendungen aufgerufen, die IHostBuilderverwendet werden. Anwendungen, die auf der IWebHostBuilder Grundlage basieren, werden stattdessen verwendet CreateServer(IWebHostBuilder) .

CreateHostBuilder()

Erstellt eine IHostBuilder zum Einrichten TestSerververwendete .

CreateServer(IServiceProvider)

Erstellt den TestServer Code mit der IServiceProvider aus der bootstrapped-Anwendung. Dies wird nur für Anwendungen aufgerufen, die IHostBuilderverwendet werden. Anwendungen, die auf der IWebHostBuilder Grundlage basieren, werden stattdessen verwendet CreateHost(IHostBuilder) .

CreateServer(IWebHostBuilder)
Veraltet.

Erstellt die TestServer mit der bootstrapped-Anwendung in builder. Dies wird nur für Anwendungen aufgerufen, die IWebHostBuilderverwendet werden. Anwendungen, die auf der IHostBuilder Grundlage basieren, werden stattdessen verwendet CreateHost(IHostBuilder) .

CreateWebHostBuilder()

Erstellt eine IWebHostBuilder zum Einrichten TestSerververwendete .

Dispose()

Factory zum Bootstrapping einer Anwendung im Arbeitsspeicher für funktionale End-to-End-Tests.

Dispose(Boolean)

Führt anwendungsdefinierte Aufgaben aus, die mit dem Freigeben, Freigeben oder Zurücksetzen nicht verwalteter Ressourcen verknüpft sind.

DisposeAsync()

Factory zum Bootstrapping einer Anwendung im Arbeitsspeicher für funktionale End-to-End-Tests.

Finalize()

Schließt eine Instanz der WebApplicationFactory<TEntryPoint> Klasse ab.

GetTestAssemblies()

Ruft die Assemblys ab, die die Funktionstests enthalten. Die WebApplicationFactoryContentRootAttribute angewendeten Assemblys definieren den Inhaltsstamm, der für die angegebene Assembly TEntryPointverwendet werden soll.

StartServer()

Initialisiert die Instanz durch Konfigurieren des Host-Generators.

UseKestrel()

Konfiguriert die Factory so, dass Kestrel als Server verwendet wird.

UseKestrel(Action<KestrelServerOptions>)

Konfiguriert die Factory so, dass Kestrel als Server verwendet wird.

UseKestrel(Int32)

Konfiguriert die Factory so, dass Kestrel als Server verwendet wird.

WithWebHostBuilder(Action<IWebHostBuilder>)

Erstellt eine neue WebApplicationFactory<TEntryPoint> mit einerIWebHostBuilder, die weiter angepasst wird.configuration

Gilt für: