小编pfl*_*oyd的帖子

.net core 集成测试解析范围服务

我的集成测试很简单。我调用创建应用程序 API,然后检查应用程序记录是否正确插入。

这是我的 CustomWebApplicationFactory:

public class CustomWebApplicationFactory<TStartup> : WebApplicationFactory<Startup>
{
    public CustomWebApplicationFactory()
    {
        Configuration = new ConfigurationBuilder()
            .SetBasePath(Directory.GetCurrentDirectory())
            .AddJsonFile($"appsettings.{CustomEnvironments.IntegrationTests}.json", optional: true)
            .AddEnvironmentVariables()
            .Build();

        Log.Logger = new LoggerConfiguration().ReadFrom.Configuration(Configuration).CreateLogger();

        Log.Information("Starting integration tests");
    }

    protected override IHostBuilder CreateHostBuilder() =>
         base.CreateHostBuilder()
        .UseEnvironment(CustomEnvironments.IntegrationTests)
        .UseSerilog();  
}
Run Code Online (Sandbox Code Playgroud)

这是我的 ApplicationControllerTests 类:

public class ApplicationControllerTests : IClassFixture<CustomWebApplicationFactory<Startup>>
{
    private readonly HttpClient _client;
    private readonly MyDbContext _db;
    private readonly CustomWebApplicationFactory<Startup> _factory;

   public ApplicationControllerTests(
        CustomWebApplicationFactory<Startup> factory)
    {
        _factory = factory;
        _client = factory.CreateClient();
        _db = factory.Services.GetRequiredService<MyDbContext>();
    }

    [Fact]
    public async Task …
Run Code Online (Sandbox Code Playgroud)

c# integration-testing xunit asp.net-core

8
推荐指数
1
解决办法
4207
查看次数

标签 统计

asp.net-core ×1

c# ×1

integration-testing ×1

xunit ×1