Заставляю тебя и Жасмин бежать вместе

#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'  } });  

Что я делаю не так?