power-assert t_wada

5分ぐらいでわかるpower assert

power-assert t_wada

power assert

  • assert(a === b); のような単純なアサーションのみ必要十分
  • Assert失敗時(テストが通らなかった時)に分かりやすい情報を表示
  • 沢山のアサーションを使い分けしなくていいというメリット

そもそも何故アサーションの種類が豊富なのか?

  • 例) Chaiexpect
  • 33コもアサーションメソッドが存在
  • expect('foobar').to.contain('foo');
  • contain 含んでないから失敗した
  • 失敗した時に何故失敗したのかを表示することが出来る

どうやって動いてるの?

  • power assert !== アサーションライブラリ
  • コードを変換したりするのでツールに近いテストツール

Work flow

  1. テストコードをpower-assert用に変換したコードを生成
  2. power-assert化されたテストコードを実行
  3. テストが失敗してる時は、ロードしてるpower-assertモジュールが整形してエラー情報を出力

実行環境

キホンはMochaをベースに考える

  • Node.js
  • ブラウザ
  • Browserify

Node.js

ブラウザ

  • bower install power-assert
  • gulp or Grunt で テストコードをpower assert化
  • power assert化(変換した)テストコードをブラウザで読みこんで実行

ブラウザ on testem

Power mov

  • Testem 経由でブラウザテスト
  • ファイル監視はgulp

Browserify

node.jsをブラウザ向けのコードに変換するツール

power assert + Browserify

  • テストコードもnode.jsとして書ける
  • Browserifyの変換プラグインとしてのpower assert
  • espowerify
  • Browserifyで変換したテストコードをブラウザで実行

Browserify + Karma

gif

まとめ

  • power assertは単純なassertだけでも十分なエラー情報を出すツール
  • テストコードを変換する処理が必要
  • Node.jsの場合は気にならない手間
  • ブラウザはちょっと準備が必要
  • power assert is everywhere!

参考