Может видеть функцию из файла JavaScript, но не переменные

1

Моя структура каталогов выглядит следующим образом:

src
 |--> js
  |--> more js files in nested folders
test
 |--> spec
       |--> js test files

Если в одном из моих тестов js в spec, если я попытаюсь вызвать функцию из js файла в моих вложенных каталогах src, я могу назвать функцию прекрасной. Однако, если я попытаюсь вызвать переменную, она не сможет найти ее, и я получаю ссылку.

Моя функция (которая видима) объявляется следующим образом:

function myFunctionName() {
   ... some code ...
}

Моя переменная объявляется после функции, а не внутри любой другой функции, например:

var myVar = '...';

Я также попытался объявить myVar как const, для того же результата.

В myTestSpec.js

(function () {
    'use strict';
    describe('...', function() {
        it('...', function () {

            // Works
            expect(myFunctionName()).toEqual('...');

            // Doesn't work
            var newVar = myVar;            
        });
    });
})();
  • 0
    Как ваши файлы загружаются из специалиста? Вы используете модули ES с Webpack или аналогичную настройку?
  • 0
    Я настроил Karma, используя Yeoman, и включил несколько раннеров для жасмина и различных браузеров.
Показать ещё 3 комментария
Теги:
karma-jasmine
jasmine

1 ответ

0

Закончилось решение этого, просто вставив какое-либо "глобальное" состояние, которое я требовал в функцию, которое нужно вернуть как json. Теперь мне просто нужно вызвать эту функцию каждый раз, когда я начинаю тест.

У меня небольшое повышение производительности, я думаю, поскольку нам нужно воссоздать состояние в нескольких тестах, однако это не производственный код (только тест), поэтому не должно быть проблемой, и это означает, что я не должен зависеть от другой библиотеки JS такие как require js..

Ещё вопросы

Сообщество Overcoder
Наверх
Меню