Я хочу создать набор тестов для файла javascript, который содержит немедленно вызванную функцию. Eg.:
(function(context) {
context.setVariable("a") = context.getVariable("a") + 1
})(context);
Я не могу изменить файл для проверки.
Моя текущая попытка использует jest
и следующее:
context = null
test('test1', () => {
context = new context_mock();
context.setVariable("a", "1");
require("./My-Javascript");
// Check result
helper.check(context.getVariable("a"), 2);
});
test('test2', () => {
context = new context_mock();
context.setVariable("a", "2");
require("./My-Javascript");
// Check result
helper.check(context.getVariable("a"), 3);
});
В этом случае тест 2 всегда заканчивается неудачей. Я предполагаю, что это потому, что файл javascript не может быть require
d дважды.
Редактировать: Да context
- это глобальная переменная, которая используется, когда сценарий require
d. Я знаю, что это уродливое решение, но я не могу изменить исходный файл.
Любые предложения приветствуются.