この質問はthis previous oneに似ています。しかし今は別のフレームワーク、Jestを使用しています。ReactDOM.renderと他のインポートされた関数がJestで呼び出されたことをテストするには?
import * as React from "react";
import * as ReactDOM from "react-dom";
import * as injectTapEventPlugin from "react-tap-event-plugin";
import Application from "./components/Application";
import "./assets/styles/theme.css";
injectTapEventPlugin();
ReactDOM.render(<Application />, document.getElementById("root"));
私はここでテストしたい3つの事があります:
injectTapEventPlugin()
が呼び出されたが私のコードは次のようになります。
ReactDOM.render
がそれぞれ、期待される引数、<Application />
、およびdocument.getElementById("root")
で呼び出されました。- その
./assets/styles/theme.css
をインポートしました。私はこれが奇妙であることを知っていますが、このインポートはwebpackがそれをピックアップして最終的なバンドルに含めるようにここにあります。おそらく、このインポートは存在しないはずです。私は、theme.css
ファイルが何らかの方法でlodadedされていることを確認する必要があります。
少なくとも1と2はテストする必要があります... JestはJasmine2を使用していますが、Enzymeも使用しています(ただし、おそらくこれは役に立ちません)。
すべてのヘルプは高く評価され:)
ええ、私はインポートの前に 'jest.mock'を呼び出さなければいけませんでした。さもなければ、動作しませんでした。しかし、そうです、私はおそらくこれをテストする必要はありません...私は 'injectTapEventPlugin'または' ReactDom.render'を正しく呼んでいないと、アプリケーションは単に機能しません。将来大きく変化しない可能性が高いファイルです。すべてのコンポーネントがテストされている限り、このファイルはちょうど「ねえ、アプリケーションをレンダリング」と同じです。それだけです。 –