私は、いくつかのテストを書くことを試みているReactコンポーネントを持っています。私はそれを可能な限り単純なテストに分割しました。Reactコンポーネントを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);
});
});
私がテストしようとしているコンポーネントが必要なときは、そのサブコンポーネントを嘲笑していないようです。 Overlay.react.js
の上部には、私は次のインポートを持っている:
- 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
それは代わりにコンポーネントをあざけるの、それは右下のサブコンポーネントのために起こっているように思える:import LoadingSpinner from 'loadingIndicator/LoadingIndicatorSpin.react';
を私のテストを実行しているとき、私は次のエラーを取得しますお尻のファイルとフィットを投げる。私の理解は、あなたがそれをに言わない限り、Jestがすべてを模倣したということではなく、模擬です。
これらのテストを策定して、テスト中にサブコンポーネントがジストを爆発させないようにする正しい方法は何ですか?
少し意見がありますが、私はあなたに前向きに考えています。 jestを使用してこれらのタイプのエラーの多くを取得することになります。さらに、軽微ではないテストを開始するときにパフォーマンスの問題に遭遇することもあります。 jestのopen [issues](https://github.com/facebook/jest/issues/116)を見て、mochaやjasmineを使ってフレームワークをテストするのが良いかどうかを評価してください。 – enjoylife
それ以外の場合は、[this](http://stackoverflow.com/questions/27346687/reactjs-testing-components-containing-components)の質問を参照してください。 – enjoylife
@mattclemens面白いです。私は実際に反応のあるコンポーネントをテストすることについて実際に読んだことがあるので、これがデフォルトです。私はちょっと読んでみる...あなたがリンクしている質問は、あなたがテストしようとしているコンポーネントにサブコンポーネントを渡しているということです。 – Jim