C# 测试¶
此文件使用 C# 特定内容扩展 common/testing.md。
测试框架¶
- 单元测试和集成测试优先使用 xUnit
- 使用 FluentAssertions 编写可读性更好的断言
- 使用 Moq 或 NSubstitute 模拟依赖项
- 当集成测试需要真实基础设施时使用 Testcontainers
测试结构¶
- 在
tests/下镜像src/结构 - 明确分离单元测试、集成测试和端到端测试的覆盖范围
- 测试命名应基于行为,而不是实现细节
public sealed class OrderServiceTests
{
[Fact]
public async Task FindByIdAsync_ReturnsOrder_WhenOrderExists()
{
// Arrange
// Act
// Assert
}
}
ASP.NET Core 集成测试¶
- 使用
WebApplicationFactory<TEntryPoint>实现 API 集成覆盖 - 通过 HTTP 测试认证、验证和序列化,而不是绕过中间件
覆盖率¶
- 目标行覆盖率 80% 以上
- 将覆盖范围集中在领域逻辑、验证、认证和失败路径
- 如果可用,启用覆盖率收集并在 CI 中运行
dotnet test
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 ev/ECC