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");}运行
dotnet test tests/BitzOrcas.Integration.Tests需要 Docker(SQL Server + RabbitMQ)运行完整集成测试。