Node.js项目测试单独存放时单元测试文件的通用命名规范是什么
Node.js 测试文件独立存放命名规范解答
你的方案可行性判定
你构思的用点拼接源码路径来命名测试文件的方案完全符合Node.js社区常规实践,没有问题,是当前主流的测试命名方案之一。从你给出的示例项目结构来看,test/unit下的controllers.product.test.js、middleware.auth.test.js的命名非常规范,一眼就能对应到源码目录下的目标文件,可读性很高。
Node.js 领域通用的主流命名约定
目前独立存放测试文件的场景下,社区主要有3种通用约定:
- 路径点拼接命名法:就是你正在使用的方案,将源码从项目根目录开始的层级路径用点拼接,最后追加
.test.js后缀即可。这种方案的优势是不需要在test目录下复刻源码的目录结构,仅通过文件名就能直接定位到对应的被测源码,中小型项目使用效率很高,Express、Koa生态的很多官方工具库都采用这种命名方式。 - 镜像目录结构命名法:在
test/unit目录下完全复刻源码的目录层级,测试文件名仅需要在原源码文件名的基础上追加.test.js后缀即可。比如对应源码controllers/product.js,测试文件路径为test/unit/controllers/product.test.js。这种方案更适合大型项目,模块多、团队规模大的场景下目录结构清晰,不会出现文件名过长的问题,Jest、Mocha等主流测试框架默认就支持这种结构的测试用例扫描。 - 功能模块命名法:这种约定多用于集成测试场景,不需要严格绑定单个源码文件,直接按测试覆盖的业务功能模块命名即可,你示例中
test/integration下的products.test.js就属于这种写法,专门覆盖产品相关的所有端点接口测试,是集成测试的标准写法。
实践建议
两种单元测试的命名方案都符合社区规范,你可以根据项目实际情况选择:
中小型项目、团队规模小于5人的情况下,直接用你现在的点拼接方案即可,足够简洁易维护
大型项目、后续迭代周期长、模块多的情况下,更推荐选择镜像目录结构的方案,长期维护成本更低
内容的提问来源于stack exchange,提问作者avepr
相关产品推荐
相关产品推荐

