Pocket

こんにちは。Photoraitエンジニアのヒエイです。

PhotoraitではWebつくというWebサイト作成ツールを提供しており、Reactを使用しています。

フロントエンドテストを導入した話を書きます。

前提

Photorait Webつく技術スタック

Jest導入

方針

  • JestEnzymeを利用
    • Jest
      facebook社製のテスティングフレームワーク。
    • Enzyme
      Reactテストライブラリ・ユーティリティツール。

パッケージインストール

初期設定

  • React・Typescriptで実行のための初期設定

tsconfig.jest.json

  • Jest実行用に別で用意。アプリケーション用tsconfigを上書きさせる形にしました。以下はサンプルです。

 

jest.config.js

  • Jest用設定ファイルを用意

実行

  • package.json を修正

実行は以下

テストコード設置

テスト対象の簡単な入力フォームを用意しました。

テキストボックスに入力した内容をform submitで送るコンポーネントです。

postRequest には送信メソッドを設定します。

 

jestテストコードを簡単には以下の形で用意します。

 

解説

enzyme読み込み

React 16 を利用する際の読み込みはこちらを参考

 

mock化

アタッチするpostリクエスト用関数をjestのmock関数で用意します。

 

Jestテスト

フォームコンポーネントを展開します。

 

inputテキストボックスに文字列を入力しています。

 

フォームをサブミットさせ、アタッチしたformPostRequest関数に入力した文字列通り渡ってくるかテストしています。

 

懸念点・要調査

    • React Hooksの状態をEnzyme側で取得ができず、状態テストを上手く行えないようでした。
    • 状態変更後のエレメントの数の変化等でテストを入れる事にしています。

まとめ

簡潔にも汎用的にもテストを仕込めるのですごく便利でした。

次回はstorybook とスナップショットテスト(storyshot)について触れたいと思います。

 

 

Pocket

Join Us !

ウエディングパークでは、一緒に働く仲間を募集しています!
ご興味ある方は、お気軽にお問合せください(カジュアル面談から可)

採用情報を見る