Jest - Как использовать переменную / функцию из другого файла для тестового модуля? - PullRequest
0 голосов
/ 03 мая 2020

Я начинаю с Jest.

У меня проблема с тестом, поскольку все мои переменные функции и конфигурации находятся в другом файле JS:

<script type="text/javascript" src="js/config.js"></script> // other file
<script type="text/javascript" src="js/utils.js"></script> // other file
<script type="text/javascript" src="js/index.js"></script> // my app, where I make test

В моем индексе. js есть мое приложение:

var app = {
    init: function() { 
          // do some stuff using var form config.js
          // use function from utils.js    
          }
}

Я хочу сделать тест для этой функции инициализации, поэтому я добавляю в индекс. js module.exports = app; и вот мой тестовый файл:

const app = require('../js/index.js')

test('type of variable', () => {
   expect(typeof app.init()).toBe("number");
});

И у меня есть ReferenceError: functionFromUtils.js is not defined, то же самое для переменной, используемой в конфигурации. js

Как правильно импортировать эти файлы, чтобы можно было провести тест? Нужен ли для этого компилятор, такой как веб-пакет?

Ответы [ 2 ]

0 голосов
/ 04 мая 2020

Я обхожу проблему, добавив babel, и использую синтаксис импорта / экспорта

0 голосов
/ 04 мая 2020

Вы не можете использовать модули в JS без type="module" в теге сценария. Кроме того, при необходимости вам не нужен .js в конце, а просто имя файла.

...