如何使用Jest测试多返回值?修正单元测试解析返回结构
修复单元测试以正确解析函数返回值
你的测试代码有两个核心问题需要修正:
- 输入数组不匹配函数注释的预期,且导致
numbers[3]为undefined,最终valThree计算结果为NaN - 断言方式错误,
toBe(3,9)无法验证嵌套的对象结构,必须正确访问函数返回的层级属性
修改后的测试代码
// index.test.js const calculateNumbers = require("./index"); test("Returns correct calculations", () => { // 传入符合函数预期的数组:前两位和为6,第四位为3,保证三数和为9 const testResult = calculateNumbers([3, 3, 0, 3]); // 分别验证返回结构中total下的两个字段 expect(testResult.total.valTwo).toBe(6); expect(testResult.total.valThree).toBe(9); });
额外说明
如果坚持使用原测试的[1,2,6]作为输入,需要同步修改index.js里的三数求和逻辑——把numbers[3]改成numbers[2],否则valThree会因访问不存在的数组索引得到NaN,无法通过测试。
内容的提问来源于stack exchange,提问作者mm-05
相关产品推荐
相关产品推荐

