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);
    });
});

Тогда у меня есть "test": "jest" в моих сценариях package.json, но я получаю следующую ошибку:

FAIL  __tests__/sumObjectValues-test.js (0s) ● Runtime Error
  - Error: Your test suite must contain at least one test.
       at onTestResult (node_modules/jest-cli/build/TestRunner.js:143:18) 1 test suite
failed, 0 tests passed (0 total in 1 test suite, run time 13.17s) npm
ERR! Test failed.  See above for more details.

Спасибо всем :)

Примечание: в it была допущена опечатка, но после исправления я получаю новую ошибку:

FAIL __tests__/sumObjectValues-test.js (321.763s) ● sumObjectValues ›
it takes an array of objects, each with amount values, & sums the
values - TypeError: sumObjectValues is not a function at
Object. (__tests__/sumObjectValues-test.js:27:10) 1 test
failed, 0 tests passed (1 total in 1 test suite, run time 344.008s)
npm ERR! Test failed. See above for more details.

person zeKoko    schedule 24.08.2016    source источник
comment
Я почти уверен, что Node.js не поддерживает модули ES2015 (пока). Попробуйте изменить export default sumObjectValues на module.exports = sumObjectValues.   -  person Mike Cluck    schedule 24.08.2016
comment
Ах, конечно, я могу добавить модуль шутки babel, чтобы попытаться отсортировать это, попробую! Спасибо :)   -  person zeKoko    schedule 24.08.2016
comment
Ах, чувак, это больно ... Думаю, мне нужно спать. Теперь он запущен. Я установил babel-jest, но получаю новую ошибку: FAIL __tests __ / sumObjectValues-test.js (321.763s) ● sumObjectValues ​​›он принимает массив объектов, каждый со значениями количества, и суммирует значения - TypeError: sumObjectValues ​​не является функцией объекта. ‹Anonymous› (__tests __ / sumObjectValues-test.js: 27: 10) 1 тест не пройден, 0 тестов пройдено (всего 1 в 1 наборе тестов, время выполнения 344.008 с) npm ERR! Тест не пройден. Подробнее см. Выше.   -  person zeKoko    schedule 25.08.2016
comment
Я просто плююсь, так как я еще не использовал модули ES2015 в Node, но пробовали ли вы использовать _ 1_ синтаксис вместо require?   -  person Mike Cluck    schedule 25.08.2016
comment
Да! Вы красотка! Спасибо, Майк, на этом все, благодарю за помощь :)   -  person zeKoko    schedule 25.08.2016
comment
Ржу не могу! Рад, что смог помочь.   -  person Mike Cluck    schedule 25.08.2016


Ответы (2)


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', () => {
person Adrian Miranda    schedule 03.01.2021

Если вы думаете написать тесты позже, вы можете просто игнорировать их с помощью этого

test.skip('skip', () => {});
person Nalan Madheswaran    schedule 18.09.2019