Ho un componente React che sto cercando di scrivere su alcuni test. L'ho suddiviso per il test più semplice possibile.Come deridere i sottocomponenti quando l'unità testa un componente React con Jest
jest.dontMock('../Overlay.react.js');
import React from 'react';
import ReactDOM from 'react-dom';
var Overlay = require('../Overlay.react.js'); // this is the culprit!
describe('Overlay',() => {
it('should work',() => {
expect(true).toEqual(true);
});
});
Nel richiedere la componente che sto cercando di testare, sembra di non essere beffardo sue sottocomponenti. Nella parte superiore del Overlay.react.js
, ho la seguente importazione: import LoadingSpinner from 'loadingIndicator/LoadingIndicatorSpin.react';
Quando si esegue la mia prova, ottengo il seguente errore:
- SyntaxError: /Users/dev/work/react-prototype/src/components/root/routes/components/subset1/components/Overlay.react.js: /Users/dev/work/react-prototype/src/components/root/routes/components/loadingIndicator/LoadingIndicatorSpin.react.js: /Users/dev/work/react-prototype/src/components/root/routes/components/loadingIndicator/sass/style.sass: Unexpected token ILLEGAL
Sembra che invece di scherno dei componenti, si sta andando a destra fino al sottocomponente di sass file e gettando una misura. La mia comprensione era che Jest si burla di tutto tranne che per quello che dici a non simulato.
Qual è il modo corretto di formulare questi test in modo che i componenti secondari non facciano esplodere il jest durante l'importazione durante un test?
Leggermente supponente, ma sto solo pensando a te. Stai per ricevere molti di questi tipi di errori usando il jest, inoltre ti imbatterai in problemi di prestazioni quando inizi a testare qualcosa di non banale. Dai un'occhiata ad alcuni [problemi] aperti (https://github.com/facebook/jest/issues/116) di jest e valuta se usare moka o gelsomino sarebbe una scelta migliore per il testing framework. – enjoylife
Altrimenti dai un'occhiata a questa domanda (http://stackoverflow.com/questions/27346687/reactjs-testing-components-contain-components) per ulteriori informazioni. – enjoylife
@mattclemens Interessante. Ho appena letto sul test che reagisce ai componenti con jest, quindi quello era il default. Leggerò un po '... La domanda a cui ti sei collegato è più legata al fatto che i sottocomponenti siano passati al componente che stai provando a testare, piuttosto che all'importazione. – Jim