Мне интересно, как я могу использовать функцию spy/stub на Jasmine, если я использую импорт/экспорт ES6 с babel?Жасмин: Как шпион импортировать функцию/конструктор на ES6?
import MobileDetect from 'mobile-detect';
it('should spy MobileDetect',() => {
MobileDetect = jasmine.createSpy('MobileDetect');
});`
Первая проблема заключается в том, что я не могу переписать модуль только для чтения
Модуль сборки не удалось: SyntaxError: /Users/oleg/projects/rp/popup/lib/spec/popup.spec.js: "MobileDetect" is read-only
it('should spy MobileDetect',() => {
console.log(MobileDetect.prototype.constructor === MobileDetect); //true
spyOn(MobileDetect.prototype, 'constructor');
console.log(MobileDetect.prototype.constructor === MobileDetect); //false
});`
Я попробовал этот подход, но он не работает слишком. .. MobileDetect.prototype.constructor spied, но MobileDetect напрямую нет.
Что вы думаете об этой проблеме?
Вы не можете следить за «MobileDetect», потому что значение переменной не может быть переписано новой функцией шпионажа. Мое предположение: что, если вы делали «var myMobileDetect = MobileDetect», а затем вместо этого наводили «myMobileDetect»? Очевидно, вам нужно будет изменить свой код, чтобы использовать 'myMobileDetect'. – apsillers
Мне интересно, что вы пытаетесь выполнить в своем тесте. Вы хотите создать шпиона, который имитирует методы «MobileDetect»? (т.е. макет) –