Tag: Testing
All the articles with the tag "Testing".
-
别再用 DateTime.Now:用 TimeProvider 让 .NET 代码可测试
Published: at 09:13 AM几乎每个 .NET 项目都有同一个隐患:DateTime.Now 散落在服务、验证器和业务规则里。表面无害,实际上让时间相关逻辑无法正确测试。本文介绍两种解决方案——自定义 IDateTimeProvider 接口和 .NET 8 内置的 TimeProvider——让时间成为可注入的依赖,配合 FakeTimeProvider 轻松测试订阅到期、试用结束等真实场景。
-
.NET 项目必加的 5 类架构测试
Published: at 09:03 AM架构规则写在文档里,六个月后就会被违反。本文介绍用 ArchUnitNET 把层依赖、命名规范、类共位、可见性和第三方库边界这 5 类约定写成自动化测试,让 CI 来守护你的架构意图,而不是靠 Code Review 碰运气。
-
测试金字塔是个谎言——我实际用的测试分层策略
Published: at 01:40 AM测试金字塔建议以大量单元测试为基础,但这条建议诞生于 2009 年的基础设施条件。Testcontainers 和 Aspire 改变了集成测试的成本,集成测试才应该是现代测试套件的骨干,本文详述作者亲历的 Bug 案例与他实际采用的四层测试结构。
-
C# Feature Slice 测试策略:单元测试、集成测试与边界划分
Published: at 12:28 PMFeature-sliced 架构的核心优势之一是让测试变得清晰:Handler 是天然的单元测试边界,WebApplicationFactory 覆盖 HTTP 管道。本文介绍针对 .NET Feature Slice 应用的完整测试策略,包括 Handler 单元测试、集成测试搭建、验证逻辑测试和 Testcontainers 使用方式。
-
用 Meziantou.ShardedTest 加速 .NET CI 测试分片
Published: at 04:11 AM测试跑太慢拖慢 PR 反馈?Meziantou.ShardedTest 是一个 .NET 全局工具,能把测试集确定性地切成多个分片,在 CI 多个 Job 上并行运行,有效缩短流水线等待时间。本文介绍它的工作原理、适用场景,以及在 GitHub Actions 和 GitLab CI 上的完整配置方法。
-
你的 .NET 项目该补上的 5 类架构测试
Published: at 12:00 AM架构图写在 Confluence 里,半年后多半会被人悄悄绕开。本文整理 5 类值得放进 .NET 项目的架构测试:层级依赖、命名约束、就近放置、可见性控制和依赖守卫,让架构规则真正变成会失败的测试。
-
代理式手工测试:代码会跑,代理才算真的开始工作
Published: at 12:00 AMSimon Willison 这篇新文把一个现实问题说透了:自动化测试全绿,功能照样可能坏在启动、界面和交互细节上。让代理亲手运行 `python -c`、`curl`、Playwright 和可验证的测试笔记,才会把“看起来没问题”变成“真的跑过了”。
-
下游测试:在破坏抵达用户之前发现它
Published: at 12:00 AM大多数库维护者等到 bug 报告涌来才知道自己破坏了下游项目。Debian、Rust 的 crater、Node.js 的 CITGM 都证明了更好的做法:在变更合并前运行依赖方的测试套件。本文梳理下游测试的现状,以及为什么语言生态系统还差最后一块拼图。
-
《Software Engineering at Google》这本书教会了我什么
Published: at 12:00 AMGoogle 二十年工程经验浓缩成一本书,里面的教训远不止适用于大厂。从 Hyrum 定律到代码评审的真正目的,从测试金字塔到依赖管理的噩梦,这些实践任何规模的团队都能拿来用。