这个项目是一个“学习实验室”,专门用来把你在学习 Node.js / JavaScript 时遇到的问题写成测试,再通过运行测试快速验证结论。
- Node.js >= 20
npm testnpm test:运行全部测试npm run test:watch:监听模式,文件变更后自动重跑npm run test:js:只运行 JavaScript 语法/语言特性测试npm run test:node:只运行 Node.js 运行时/API 特性测试npm run new:test -- js array-sort:快速创建测试文件(可选第三个参数选模板,默认question)
单文件运行(把路径跟在 -- 后面即可,无需单独脚本):
npm test -- tests/js/array-index-start.test.jstests/
js/ # 语言语法、类型、异步、原型等(*.test.js)
node/ # fs/path/events/process 等 Node 特性(*.test.js)
templates/ # 仅骨架模板(*.template.js,不会被 npm test 收集)- 在
tests/js或tests/node下新建*.test.js文件 - 使用
test('问题描述', () => { ... })写出你的假设 npm test看是否通过- 若失败,修正你的理解或代码,再次验证
- Given:准备输入和环境
- When:执行代码
- Then:断言实际结果
node --test tests/js/array-index-start.test.js或通过 npm:
npm test -- tests/js/array-index-start.test.js- 每学一个新知识点,就新增一个最小测试用例
- 通过“先写预期,再跑测试”的方式训练推理能力
- 默认骨架:
tests/templates/question.template.js(不传模板名时使用) - 还可自建
tests/templates/<名字>.template.js,生成时用第三个参数选用
npm run new:test -- js array-sort-behavior
npm run new:test -- node stream-pipe-basics指定模板(对应 tests/templates/<template>.template.js,省略则使用 question):
npm run new:test -- js fetch-timeout async也允许写成带后缀的形式(会规范化):async.template.js 或 async.js 均可。
生成后会在 tests/js 或 tests/node 下创建对应的 *.test.js 文件。
仓库自带示例:question.template.js、async.template.js。