我正在实现 jest 来测试我的 React 应用程序,并在我拥有的实用程序函数上设置了一个简单的测试,但出现错误:



检查了我的实现,我认为一切都是正确的 - 有人可以看看我吗?

测试和函数的文件结构如下

- __tests__
  -- sumObjectValues-test.js
- utils
  -- sumObjectValues.js
sumObjectValues.js 如下:

const sumObjectValues = (obj, identifier) => {
    return obj
        .map((el) => { return el[identifier]; })
        .reduce((prev, next) => { return prev += next; }, 0);
}

export default sumObjectValues;

sumObjectValues-test.js :

   const obj = [
    {
        "id": 0,
        "item": "Tesla Model S",
        "amount": 85000
    },
    {
        "id": 1,
        "item": "iPhone 6S",
        "amount": 600
    },
    {
        "id": 2,
        "item": "MacBook Pro",
        "amount": 1700
    }
];

const identifier = "amount";


jest.unmock('../client/utils/sumObjectValues'); // unmock to use the actual implementation of `sumObjectValues`

describe('sumObjectValues', () => {
    if('takes an array of objects, each with amount values, & sums the values', () => {
        const sumObjectValues = require('../client/utils/sumObjectValues');
        expect(sumObjectValues(obj, identifier)).toBe(87300);
    });
});

然后我的 package.json 脚本中有 "test": "jest",但出现以下错误:

失败 __tests__/sumObjectValues-test.js (0s) ● 运行时错误
- 错误:您的测试套件必须至少包含一项测试。
在 onTestResult (node_modules/jest-cli/build/TestRunner.js:143:18) 1 个测试套件
失败,0 个测试通过(1 个测试套件中总共 0 个,运行时间 13.17 秒)npm
呃!测试失败。有关更多详细信息,请参见上文。

谢谢大家:)

N.B. :在 it 中是一个错字,但在修复后我收到一个新错误:

失败 __tests__/sumObjectValues-test.js (321.763s) ● sumObjectValues ›
它需要一个对象数组,每个对象都有数量值,并对
值 - 类型错误:sumObjectValues 不是函数
目的。 (__tests__/sumObjectValues-test.js:27:10) 1 次测试
失败,0 个测试通过(1 个测试套件中总共 1 个,运行时间 344.008 秒)
npm 错误!测试失败。有关更多详细信息,请参见上文。

最佳答案

if('takes an array of objects, each with amount values, & sums the values', () => {
应该
it('takes an array of objects, each with amount values, & sums the values', () => {

关于javascript - 开玩笑 : Error: Your test suite must contain at least one test,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39131521/

10-09 18:41