Вызов плагина Chai в Intern возвращает ошибку

Я пытался использовать плагин sinon-chai в Intern, но это дало мне:

Error {stack: (...), message: "Cannot find the Node.js require"} 

Я установил плагин через npm, и вот мой тестовый файл:

define([
  'intern!bdd',
  'intern/chai!expect',
  'app/functions',
  'intern/chai',
  'intern/dojo/node!sinon-chai'
], function (bdd, expect, myapp, chai, sinonChai) {
  chai.use(sinonChai);

  ...

});

Что может пойти не так?


person Heri Hehe Setiawan    schedule 23.09.2014    source источник
comment
Вы его броуверифицировали?   -  person Vinz243    schedule 23.09.2014


Ответы (1)


Для загрузчика узлов требуется Node.js, поэтому его нельзя использовать в браузере. Вам нужно загрузить библиотеку sinon-chai напрямую, как показано ниже (при условии, что относительный путь от вашего теста до node_modules равен ../node_modules):

define([
  'intern!bdd',
  'intern/chai!expect',
  'app/functions',
  'intern/chai',
  '../node_modules/sinon-chai/lib/sinon-chai'
], function (bdd, expect, myapp, chai, sinonChai) {
  chai.use(sinonChai);
  ...
});

Вы можете упростить включение теста, определив пакет sinon-chai в своей внутренней конфигурации:

...
loader: {
    { name: 'sinon-chai', location: 'node_modules/sinon-chai/lib' },
    ...
}
...

Тогда вы могли бы обойтись только:

define([
    ...
    'sinon-chai/sinon-chai'
], function (bed, expect, myapp, chai, sinonChai) {
...
});
person jason0x43    schedule 23.09.2014
comment
вот как я интегрировал библиотеку chai-spies для своей стажерской установки. Следует отметить одну вещь: мне пришлось установить chai lib отдельно в моем package.json, и в мой тестовый файл я включил chai lib из папки node_modules, чтобы использовать метод chai.use(). - person d48; 03.02.2015