Mi chiedo come posso attivare/disattivare la funzione di stub su Jasmine se sto utilizzando importazioni/esportazioni ES6 con babel?Jasmine: come spiare la funzione importata/costruttore su ES6?
import MobileDetect from 'mobile-detect';
it('should spy MobileDetect',() => {
MobileDetect = jasmine.createSpy('MobileDetect');
});`
Il primo problema è che non riesco a riscrivere il modulo di sola lettura
Modulo generazione non riuscita: 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
});`
ho provato questo approccio, ma non funziona troppo. .. MobileDetect.prototype.constructor spiato, ma MobileDetect non direttamente.
Cosa ne pensi di questo problema?
Non è possibile spiare 'MobileDetect' perché il valore della variabile non può essere riscritto per una nuova funzione di spionaggio. La mia ipotesi: cosa succede se hai fatto 'var myMobileDetect = MobileDetect' e poi spiato su' myMobileDetect' invece? Ovviamente, avresti bisogno di cambiare il tuo codice per usare 'myMobileDetect', però. – apsillers
Mi chiedo cosa stai cercando di ottenere nel tuo test. Stai cercando di creare una spia che imiti i metodi di 'MobileDetect'? (cioè una finta) –