diff --git a/i18n/zh-cn/docusaurus-plugin-content-blog/how-to-write-unit-tests.md b/i18n/zh-cn/docusaurus-plugin-content-blog/how-to-write-unit-tests.md index db12c33b6b3..79a74c040e2 100644 --- a/i18n/zh-cn/docusaurus-plugin-content-blog/how-to-write-unit-tests.md +++ b/i18n/zh-cn/docusaurus-plugin-content-blog/how-to-write-unit-tests.md @@ -6,13 +6,13 @@ author: 汪忠祥 - Apache Seata committer,trustdecision 技术专家 date: 2024-02-20 --- -# 背景 +## 背景 随着 Seata 项目的不断发展和壮大,我们的贡献者群体也在持续扩大。项目的功能不断增强,对于代码质量的要求也在提高。在这个过程中,我们期望每一位贡献者在提交功能代码的同时,能够附带规范、完备的测试用例。 一个优秀的项目,其完备的单元测试是基本保障。Test-Driven Development(TDD)理念已经提出多年,它强调在编写功能代码之前先编写测试用例。通过编写单元测试,开发者可以更深入地理解代码中相关类和方法的作用,掌握核心逻辑,熟悉各种场景的运行情况。同时,单元测试也为开源项目提供了稳定安全的保障,使得项目在接受贡献者代码时,能够确保代码的质量和稳定性。 单元测试是质量保障的第一环,有效的单元测试能够提前发现90%以上的代码Bug问题,同时也能防止代码的腐化。在项目重构和演进过程中,单元测试起到了至关重要的作用,它能够确保重构后的代码仍然能够正常工作,不会引入新的Bug。 在社区看来,贡献合理的测试用例代码和贡献功能代码同样重要,为了帮助开发者编写出高质量的测试用例,本文给出一些基础的规范和建议。 -# 推荐的框架 +## 推荐的框架 当前社区使用以下三个框架编写测试用例; ### junit5 junit是Java中最常用的单元测试框架,用于编写和运行可重复的测试用例。 @@ -58,7 +58,7 @@ assertj是一个断言库,提供了一组易于使用和可读性很强的断 ${assertj-core.version} ``` -# 规范 +## 规范 我们参考阿里巴巴JAVA开发手册,整理了一些建议及规范,分为不同的级别,其中【【强制】部分,开发者需要严格遵守,社区在合并代码时会按照强制规则进行review,【【推荐】【参考】部分,方便大家更好的了解我们对于测试用例的考量和原则。 ##### 1.【强制】单元测试必须遵守 AIR 原则。 @@ -100,8 +100,3 @@ assertj是一个断言库,提供了一组易于使用和可读性很强的断 - 存在过多的外部依赖。 - 存在过多的条件语句。 说明:多层条件语句建议使用卫语句、策略模式、状态模式等方式重构。 -##### 15.【参考】不要对单元测试存在如下误解: -- 那是测试同学干的事情。 -- 单元测试代码是多余的。系统的整体功能与各单元部件的测试正常与否是强相关的。 -- 单元测试代码不需要维护。一年半载后,那么单元测试几乎处于废弃状态。 -- 单元测试与线上故障没有辩证关系。好的单元测试能够最大限度地规避线上故障。