Тестируйте модули ES6 с помощью Jest

Как тестировать модули ES6 с помощью Jest.


Пример:

sum.js

const sum = function (a, b) {
  return a + b;
}

export default sum;

sum.test.js

import sum from './sum';

test('adds 1 + 2 to equal 3', () => {
  expect(sum(1, 2)).toBe(3);
});
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
14
0
6 612
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Единственное требование - настроить среду test на Babel и добавить плагин преобразования es2015:


Шаг 1:

Добавьте среду test в .babelrc в корне вашего проекта:

{
  "env": {
    "test": {
      "plugins": ["@babel/plugin-transform-modules-commonjs"]
    }
  }
}

Шаг 2:

Установите плагин преобразования es2015:

npm install --save-dev @babel/plugin-transform-modules-commonjs

Вот и все. Jest автоматически включит компиляцию из модулей ES в CommonJS, без необходимости указывать дополнительные параметры для вашего свойства jest внутри package.json.

этот ответ может быть устаревшим, ответ ГаруДана - официально предложенное решение

Peter Hayman 16.08.2020 07:10

Ответ GarouDan - это не официально предлагаемое решение для модулей ES6, а вместо этого для сценариев Typescript. Это не одно и то же.

Paulo Coghi 22.09.2020 22:56

Хотя решение GarouDan включает поддержку машинописного текста, после предоставленной мной ссылки показана хорошо документированная реализация Jest ES6 без машинописного текста, на основе которой получено решение GarouDan. Изменения, необходимые для поддержки машинописного текста, незначительны, но я согласен, что это не имеет отношения к вопросу.

Peter Hayman 23.09.2020 23:18

Приведенные выше решения не помогли мне. Я смог решить это:

yarn add --dev babel-jest @babel/core @babel/preset-env @babel/preset-typescript

babel.config.js

module.exports = {
    presets: [
        [
            '@babel/preset-env',
            {
                targets: {
                    node: 'current',
                },
            },
        ],
        '@babel/preset-typescript'
    ],
};

где я использую машинопись.

Справка.

Другие вопросы по теме