Upload
nay
View
1.178
Download
0
Embed Size (px)
DESCRIPTION
A presentation at the OSS salon held on 2008/12/12.
Citation preview
2008-12-12;35thオープンソースサロン;しまねOSS協議会
株式会社万葉
テスト大嫌いっ娘のRSpec
大場 寧子
テストへの苦手感
テストでは嫌な目にあってきた
テストはコード変更を助ける?
コード変更がとても大変になる
昔はテスト実行が遅かったし
他人の書いたテストが読めなかったり
それならいいコードだけ書けば
しかし
苦手は克服したい
ピーマン食べよう
テストがないと後で変更が難しい
リリースし続けられない
何とかしなくては
苦手だから考えました
私を不幸にしたテストたち
1.徹底的に検査するテスト
m.save がfalseなら正解
ほかのことも検査したくなる
errorsの中身@name は 太郎になってるかしらnew_record?
これが悪だった
内部実装の変更に過敏に反応
コードが冗長で目的を見失う
本当に調べたい一番外側を調べる
それ以外は我慢するか別テストに
粒度が大事粒度を揃えよう
2. オレ流assert
assert_my_pretty_model m
何が正解なのかすぐ読めない
assertはメソッドにくるまない
3. DRYでないテスト
m = Company.new(:name=>"万葉", :type => "株式会社", ......)× 30行 × 5file
コードの変更に弱い
悪態なしでは作業できない
テストだってDRYがいい
テストの関心事以外は隠蔽する
m = create_company(:type => "株式会社")# ほかの属性はデフォルトで埋めてくれる
4. 依存しあうテストデータ
データ追加でテストが通らない
テストデータはテストごと
5. 悲観的完璧主義
エラー0必ず確認カバー率
自動テストは所詮テストの一部
緩さが合理性につながる
コミュニケーションが補完する
RSpec
振舞駆動開発のフレームワーク
動作する仕様書
使う前は懐疑的
RSpec on Rails
騙されないテストだよとか
shouldにしても嬉しくないとか
ところが
.should と打つと気分がいい!
仕様書いてる気になる
RSpec + 5箇条で快適だ!
好きになってきた
コツを模索中