Javascriptのユニットテストに必要なライブラリまとめ

オールインワン

  • ライブラリ
    • Jest
      • facebook製
      • Node.jsで実行される
      • スナップショットのテストができる
    • Jasmin
      • 少し古いイメージ
    • ava
      • babel、power-assertが入っている
      • テストを並列実行でき、軽量で高速

テスティングフレームワーク

  • テスト全体の取りまとめ。これだけではテストができなく、アサーションライブラリが必要
  • テスディングフレームワークで、アサーションライブラリを実行する。みたいな感じ。
  • ライブラリ
    • mocha

アサーションライブラリ

  • テスト判定を行い、結果を返すもの
  • ライブラリ
    • chai
    • Power-assert
      • 失敗時にわかりやすく表示してくれる

テストダブル

  • テスト対象が依存しているモジュールやリソースの代わりになるもの
  • スタブ、スパイ、モック、フェイク、ダミー。
  • ライブラリ
    • SihonJS

タスクランナー

  • ブラウザで起動してテストを実行など自動化する
  • ライブラリ
    • karma
      • ブラウザ上でテストを実行できる
      • CUIコマンドだけで、DOM APIのあるブラウザでテスト実行
      • ブラウザテストの問題点
        • テスト用に渡すHTMLが巨大だとテストが汚くなる
        • karma-html2js-preprocessor
          • karmaの前処理プラグイン
          • HTMLファイルを置き、簡単に読み込む

トランスパイラ

  • あるプログラミング言語で書かれたソースを、別の言語に変換してくれるもの
  • ライブラリ
    • Babel
      • ES7やES6の構文で書かれたJavaScriptを、現在のブラウザで使用可能なJSに変換してくれる
    • Webpack
    • Browserify

ヘッドレスブラウザ

  • ヘッドレスとは、画面を立ち上げることなしにブラウザを実行すること
    • テスト用に用意されたGUIのないブラウザ
  • ライブラリ
    • PhantomJS

カバレッジ

  • ライブラリ
    • istanbul

Fatal error: Uncaught Error: Call to undefined function set_post_views() in /home/jszk/desnote.com/public_html/wpjs/wp-content/themes/the-thor-child/single.php:658 Stack trace: #0 /home/jszk/desnote.com/public_html/wpjs/wp-includes/template-loader.php(78): include() #1 /home/jszk/desnote.com/public_html/wpjs/wp-blog-header.php(19): require_once('/home/jszk/desn...') #2 /home/jszk/desnote.com/public_html/index.php(17): require('/home/jszk/desn...') #3 {main} thrown in /home/jszk/desnote.com/public_html/wpjs/wp-content/themes/the-thor-child/single.php on line 658