NativeScript - не может импортировать библиотеки-макеты при модульном тестировании
Я хочу написать несколько юнит-тестов с макетами для приложения, над которым я работаю.
tns create test_ns --tsc
npm install -D sinon # library for mocking; I can't import it
npm install -D underscore # a js lib that I can import, for reference
tns test init --framework=jasmine
tns test android
И вот test/example.js
:
var sinon = require('sinon')
describe("A suite", function() {
it("contains spec with an expectation", function() {
expect(true).toBe(true);
});
});
Это мое karma.conf.js
ссылка на сайт
tns test
команда терпит неудачу с Error: com.tns.NativeScriptException: Failed to find module: "sinon", relative to: app/tns_modules/
Я установил karma-sinon
пакет тоже - без разницы.
Я столкнулся с этой проблемой в репозитории NativeScript #1956, где они предлагают установить проблемный пакет npm в другой модуль и затем импортировать его. Я попробовал это, но require('sinon')
все еще лает с той же ошибкой.
Я не настаиваю на использовании sinon - мне просто нужна насмешливая библиотека js. Я пробовал с testdouble
- Я получил тот же "Не удалось найти модуль".
Предложения?
1 ответ
tns test
Команда заменила точку входа вашего обычного приложения пользовательской записью, а затем на устройстве тестирования создается и запускается пакет приложения. В пакете приложения не будет npm "dev-зависимостей", поэтому sinon
будучи установленным как единое целое, ваше приложение не будет упаковано, даже если это тестовая конфигурация.
устанавливать sinon
как производственная зависимость, чтобы использовать его внутри вашего приложения.
npm install sinon --save