Я хочу протестировать скрипты в среде, где мы не можем экспортировать модули.Я установил Jest версии 23.1.0, и в моем файле package.json
нет других пакетов.Используя jsdom 'old' api Я нашел решение, которое работает, как и ожидалось:
script.js
var exVar = "test";
script.test.js
const jsdom = require('jsdom/lib/old-api.js');
test('old jsdom api config', function(done) {
jsdom.env({
html: "<html><body></body></html>",
scripts: [__dirname + "/script.js"],
done: function (err, window) {
expect(window.exVar).toBe("test");
done();
}
});
});
Однако с этой реализацией мне приходится переписывать конфигурацию для каждого теста, потому что похоже, что конфигурация jsdom переписывается каждый раз.
Что я пробовал
До сих пор я пытался запустить эту конфигурацию:
const jsdom = require('jsdom/lib/old-api.js');
jsdom.env({
html: "<html><body></body></html>",
scripts: [__dirname + "/script.js"],
done: function (err, window) {
console.log('end');
}
});
с этим тестом:
test('old jsdom api config', function(done) {
expect(window.exVar).toBe("test");
done();
});
по-разному: внутри beforeAll
, внутри скрипта, связанного через setupFiles
или через setupTestFrameworkScriptFile
в объекте конфигурации Jest, но все равно ничего не работает.
Возможно, я мог бы расширить jest-environment
, как предложено в документах , но я понятия не имею ни о синтаксисе, который мне следует использовать, ни о том, как связать этот файл с тестами.