TDD实战:JavaScript中如何一次性运行多个sumAll测试?
搞定sumAll函数所有测试一次性通过的方法
要让所有测试一次性跑过,核心是让sumAll函数满足所有测试用例的规则。先逐个明确每个测试的要求,再写出对应的实现:
测试对应的需求梳理
- 基础范围求和:计算两个数字之间(包含两端)所有整数的和
- 支持大数求和:JS数字精度能覆盖,按正常求和逻辑处理即可
- 第一个数大于第二个数时:自动取两个数的最小值和最大值,计算该区间的和
- 含负数参数:直接返回
'ERROR' - 参数不是原始数字类型(字符串、数组等):返回
'ERROR'
完整的sumAll函数实现
把你的sumAll.js文件替换成以下代码:
function sumAll(a, b) { // 检查参数合法性:必须是原始数字类型,且非负数 if (typeof a !== 'number' || typeof b !== 'number' || a < 0 || b < 0) { return 'ERROR'; } // 确定求和区间的边界 const min = Math.min(a, b); const max = Math.max(a, b); // 用等差数列求和公式计算,避免循环提升效率 return (max - min + 1) * (min + max) / 2; } module.exports = sumAll;
运行测试的操作
- 把测试代码里所有的
test.skip改成test,移除所有跳过标记 - 运行你的测试命令(比如
jest sumAll.test.js),所有测试就能一次性通过了
内容的提问来源于stack exchange,提问作者lildo-laggins
相关产品推荐
相关产品推荐

