#javascript #node.js #jasmine #requirejs
#javascript #node.js #jasmine #requirejs
Вопрос:
Я не могу понять, как заставить Рейчел и Жасмин работать вместе.
Что я хотел бы сделать, так это просто использовать Jasmine для написания модульных тестов для некоторых модулей. У меня есть небольшое приложение с требуемой конфигурацией, и теперь я пытаюсь загрузить ту же конфигурацию в контекст Jasmine, но получаю ошибки разных типов.
Вот что я пытаюсь сделать:
spec/myModuleTests.spec.js
:
require(["/lib/require-init.js"], function (config) { require(['module1', 'module2'], describe("my TestCase", function () { it("isATrap", function() { expect(1).toEqual(2); }); }))});
И это то, что я получаю, когда бегу npx jasmine
:
TypeError [ERR_INVALID_ARG_TYPE]: The "id" argument must be of type string. Received an instance of Array at new NodeError (node:internal/errors:371:5) at validateString (node:internal/validators:119:11) at Module.require (node:internal/modules/cjs/loader:998:3) at require (node:internal/modules/cjs/helpers:102:18) at Object.lt;anonymousgt; (D:.. ..spec.js:1:1) at Module._compile (node:internal/modules/cjs/loader:1101:14) at Object.Module._extensions..js (node:internal/modules/cjs/loader:1153:10) at Module.load (node:internal/modules/cjs/loader:981:32) at Function.Module._load (node:internal/modules/cjs/loader:822:12) at Module.require (node:internal/modules/cjs/loader:1005:19) { code: 'ERR_INVALID_ARG_TYPE' }
Теперь это было бы не так странно, если бы я просто не скопировал тот же код из app.js, за исключением того, что там нет «описания» для теста, но есть само приложение, где код выглядит так:
lib/app.js
require(["/lib/require-init.js"], function (config) { require(['module1', 'module2'], console.log(module1); module2.init(); }); });
И это полностью работает — никаких ошибок вообще.
Все, что я делаю с «реальным» приложением, — это называю его в HTML:
lt;script data-main="/lib/app.js" src="/modules/vendor/requirejs/require-2.3.6.js"gt;lt;/scriptgt;
lib/require-init.js
require.config({ baseUrl: './', paths: { module1: '/lib/module1', module2: '/lib/module2' } });
Что я делаю не так?