社内で開催されたRSpec勉強会テストのパフォーマンスチューニングについて話したので資料を公開してみます。
RSpecの名は冠しているものの他の言語やテスティングフレームワークでも応用できるところがあるかもしれません。
8/3追記:はてブコメント返信
テストのテストにはテスト対象を使えばいいんでしょうか。
場合によりますね。
基本的にはテストコードとテスト対象のプロダクトコードはペアであるはずなので、テストにバグが混入したとしても対応するテスト対象が変更されていなければテストがなんらかの形でエラーになるので、そこで検知できると思います。
テストコードのリファクタリング(共通処理をメソッド抽出など)は、既存のテストが品質を担保してくれてます(グリーンのままであればリファクタリング成功)
0からテスト書く場合でテストのテストが必要になるほど複雑なことは極力やらないようにしてます。ちゃんとテストされているサードパーティ製のライブラリを使ったり、最初はシンプルな形で作っておいてそこから少しずつリファクタリングするようなアプローチをとってます。
「レベルを上げて物理で殴ればいい」ってどう表現すればいいんだろwあと@moritzplassnigさんが英語版ないの?って言ってた