power assert
assert(a === b);
のような単純なアサーションのみ必要十分
- Assert失敗時(テストが通らなかった時)に分かりやすい情報を表示
- 沢山のアサーションを使い分けしなくていいというメリット
そもそも何故アサーションの種類が豊富なのか?
- 例) Chaiのexpect
- 33コもアサーションメソッドが存在
expect('foobar').to.contain('foo');
contain
含んでないから失敗した
- 失敗した時に何故失敗したのかを表示することが出来る
どうやって動いてるの?
- power assert !== アサーションライブラリ
- コードを変換したりするのでツールに近いテストツール
Work flow
- テストコードをpower-assert用に変換したコードを生成
- power-assert化されたテストコードを実行
- テストが失敗してる時は、ロードしてる
power-assert
モジュールが整形してエラー情報を出力
ブラウザ
bower install power-assert
- gulp or Grunt で テストコードをpower assert化
- power assert化(変換した)テストコードをブラウザで読みこんで実行
ブラウザ on testem
- Testem 経由でブラウザテスト
- ファイル監視はgulp
Browserify
node.jsをブラウザ向けのコードに変換するツール
power assert + Browserify
- テストコードもnode.jsとして書ける
- Browserifyの変換プラグインとしてのpower assert
- espowerify
- Browserifyで変換したテストコードをブラウザで実行
まとめ
- power assertは単純な
assert
だけでも十分なエラー情報を出すツール
- テストコードを変換する処理が必要
- Node.jsの場合は気にならない手間
- ブラウザはちょっと準備が必要
- power assert is everywhere!