Жасмин - Как насмехаться над глобальными переменными и функциями - PullRequest
0 голосов
/ 16 января 2019

У меня есть скрипт, который я хотел бы протестировать, который включает глобальные переменные, некоторые из которых инициализируются вызовами функций. Например

var g_count = 0;
var g_util = addLibrary( "util.lib" );

Я бы хотел посмеяться над g_count и g_util

Если у меня есть вызов функции в моей функции тестирования, я могу легко смоделировать его с помощью addLibrary = jasmine.createSpy();, но как только он попадет в глобальную область видимости, произойдет сбой, и я получу сообщение об ошибке

Ссылочная ошибка: addLibrary не определена.

Редактировать: Я понял, как смоделировать переменную. Я добавил его в глобальное свойство,

var globals = {
    g_count : null
}

Экспортировал

module.exports = {
    globals: globals
}

Потом подсмотрел

spyOnProperty(util.globals, 'g_count').and.returnValue(5);

Я до сих пор не могу понять функцию addLibrary

1 Ответ

0 голосов
/ 17 января 2019

Я исправил ошибку для addLibrary. Поскольку он используется для инициализации глобальной переменной, он вызывался, когда мне требовался скрипт. Добавление addLibrary = jasmine.createSpy(); выше require(...) исправило его.

...