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

Другие вопросы по тегам