2015-10-12 15 views
5

Ho una configurazione di prova con mocha, babele e nodo che serve per testare il codice ecmascript 6.Come posso prendere in giro un modulo importato in ecmascript 6?

Qualcuno ha qualche suggerimento su come deridere le importazioni nel modulo in prova?

+1

Questo in realtà non ha nulla a che fare con ES6, ma con il caricatore di moduli che si sta utilizzando. le dipendenze di auto-mock jest: http://facebook.github.io/jest/ –

+0

@FelixKling Ha tutto a che fare con ES6. CommonJS è facile da deridere con proxyquire, ma è più complicato da risolvere con le importazioni ES6. Conosco alcune soluzioni, ma sto ancora cercando una soluzione migliore. Vorrei riaprire questa domanda per vedere quali soluzioni hanno trovato gli altri. come hai detto è una soluzione, ma potrebbe non essere la soluzione perfetta per tutti, e non ha risposto a come risolverlo con Mocha. – gregers

+0

@FelixKling +1 per la riapertura. Questa domanda non è una domanda di nodejs, piuttosto è una ES6. 'require' e' import' funzionano in modo molto diverso. – atoth

risposta

1

Le importazioni e le esportazioni in ES2015 sono parte del linguaggio stesso e sono progettate per essere analizzate staticamente. Pertanto non possono essere manipolati in fase di runtime e ciò rende impossibile il mocking dinamico.

Si consiglia di dare un'occhiata all'implementazione di una qualche forma di framework di distribuzione delle dipendenze leggero o di un resolver di modulo dinamico.

SystemJS potrebbe essere una buona scelta per voi come caricatore di moduli universale.

Spero che questo aiuti!

Problemi correlati