Doh of Dojo не работает с Sinon
Я пробовал это решение, оно не работает хорошо.
Вот пример кода по ссылке выше:
require([
"doh/runner",
"http://sinonjs.org/releases/sinon-1.17.5.js"
], function(doh){
console.log(sinon);
});
Сообщение об ошибке:
$ node ../../dojo/dojo.js load=doh test=tests/test_sinon_spy.js
Error: ENOENT: no such file or directory, open 'http://sinonjs.org/releases/sinon-1.17.5.js'
Помимо этого, я также пытаюсь напрямую потребовать sinon.js.
sinon-1.17.5.js
были перемещены в каталог doh
который так же, как runner.js
и переименован в sinon
, (Справочник)
require([
"doh/runner",
"doh/sinon"
], function(doh, sinon){
console.log(sinon);
});
Нет сообщения об ошибке, но sinon не определен:
$ node ../../dojo/dojo.js load=doh test=tests/test_sinon_spy.js
undefined
0 'tests to run in' 0 'groups'
------------------------------------------------------------
| TEST SUMMARY:
------------------------------------------------------------
0 tests in 0 groups
0 errors
0 failures
Я почти уверен, что второй код хорошо загружает sinon. Я подтвердил это, изменив sinon.js
непосредственно. Но я понятия не имею, почему Синон не может позвонить.
Версия
node.js - v6.2.2
dojo/doh - 1.10.0
sinon - 1.17.5
1 ответ
[ОБНОВЛЕНО]
Потому что оба node.js
а также dojo
Требуется API, но они разные. Этот случай не работает, потому что он должен использовать API-интерфейс node.js, чтобы требовать sinon.js
а не API додзё.
Dojo предоставляет модуль dojo / node, он напрямую вызывает модуль node.js.
1. Установите sinon с помощью npm в том же каталоге dojo
$ cd ../../dojo
$ npm install sinon
2. Измените код для использования dojo / node
# test_sinon_spy.js
require([
"doh/runner",
"dojo/node!sinon"
], function(doh, sinon){
console.log(sinon);
})
3. Вернуться в исходную папку и запустить тест
$ cd -
$ node ../../dojo/dojo.js load=doh test=tests/test_sinon_spy.js
Обратите внимание, что в каталоге dojo он будет содержать npm_module/sinon