Skip to content
bitzorcas
EN

Reference

集成测试

集成测试 — 使用 WebApplicationFactory 的完整 API 管道测试,包含数据库集成、认证模拟和多租户场景。

Last updated

BitzOrcas.Integration.Tests 通过 WebApplicationFactory 运行完整 API 管道——从 HTTP 请求经过中间件、Mediator 管道到数据库操作。

设置

使用 WebApplicationFactory<Program> 启动测试服务器:

public class CustomWebApplicationFactory : WebApplicationFactory<Program>
{
protected override void ConfigureWebHost(IWebHostBuilder builder)
{
builder.ConfigureServices(services =>
{
// 用测试配置覆盖
services.AddBitzOrcasSqlSugar(opt =>
opt.ConnectionString = TestDatabase);
});
}
}

测试类别

类别描述
端点测试HTTP 请求 → 响应验证
认证测试JWT/HMAC/API Key 方案验证
租户测试多租户数据隔离
管道测试Mediator 行为链
种子数据测试CSV 种子正确性

示例:端点测试

[Fact]
public async Task CreateNote_Returns201()
{
var client = _factory.CreateClient();
client.DefaultRequestHeaders.Authorization =
new AuthenticationHeaderValue("Bearer", _testToken);
var response = await client.PostAsJsonAsync("/api/notes",
new { title = "Test", content = "Content" });
response.StatusCode.ShouldBe(HttpStatusCode.Created);
var note = await response.Content.ReadFromJsonAsync<NoteDto>();
note.ShouldNotBeNull();
note.Title.ShouldBe("Test");
}

运行

Terminal window
dotnet test tests/BitzOrcas.Integration.Tests

需要 Docker(SQL Server + RabbitMQ)运行完整集成测试。