58
2008-12-12;35thオープンソースサロン;しまねOSS協議会 株式会社万葉 テスト大嫌いっ娘の RSpec 大場 寧子

テスト大嫌いっ娘のRSpec

  • Upload
    nay

  • View
    1.178

  • Download
    0

Embed Size (px)

DESCRIPTION

A presentation at the OSS salon held on 2008/12/12.

Citation preview

Page 1: テスト大嫌いっ娘のRSpec

2008-12-12;35thオープンソースサロン;しまねOSS協議会

株式会社万葉

テスト大嫌いっ娘のRSpec

大場 寧子

Page 2: テスト大嫌いっ娘のRSpec

テストへの苦手感

Page 3: テスト大嫌いっ娘のRSpec

テストでは嫌な目にあってきた

Page 4: テスト大嫌いっ娘のRSpec

テストはコード変更を助ける?

Page 5: テスト大嫌いっ娘のRSpec

コード変更がとても大変になる

Page 6: テスト大嫌いっ娘のRSpec

昔はテスト実行が遅かったし

Page 7: テスト大嫌いっ娘のRSpec

他人の書いたテストが読めなかったり

Page 8: テスト大嫌いっ娘のRSpec

それならいいコードだけ書けば

Page 9: テスト大嫌いっ娘のRSpec

しかし

Page 10: テスト大嫌いっ娘のRSpec

苦手は克服したい

Page 11: テスト大嫌いっ娘のRSpec

ピーマン食べよう

Page 12: テスト大嫌いっ娘のRSpec

テストがないと後で変更が難しい

Page 13: テスト大嫌いっ娘のRSpec

リリースし続けられない

Page 14: テスト大嫌いっ娘のRSpec

何とかしなくては

Page 15: テスト大嫌いっ娘のRSpec

苦手だから考えました

Page 16: テスト大嫌いっ娘のRSpec

私を不幸にしたテストたち

Page 17: テスト大嫌いっ娘のRSpec

1.徹底的に検査するテスト

Page 18: テスト大嫌いっ娘のRSpec

m.save がfalseなら正解

Page 19: テスト大嫌いっ娘のRSpec

ほかのことも検査したくなる

Page 20: テスト大嫌いっ娘のRSpec

errorsの中身@name は 太郎になってるかしらnew_record?

Page 21: テスト大嫌いっ娘のRSpec

これが悪だった

Page 22: テスト大嫌いっ娘のRSpec

内部実装の変更に過敏に反応

Page 23: テスト大嫌いっ娘のRSpec

コードが冗長で目的を見失う

Page 24: テスト大嫌いっ娘のRSpec

本当に調べたい一番外側を調べる

Page 25: テスト大嫌いっ娘のRSpec

それ以外は我慢するか別テストに

Page 26: テスト大嫌いっ娘のRSpec

粒度が大事粒度を揃えよう

Page 27: テスト大嫌いっ娘のRSpec

2. オレ流assert

Page 28: テスト大嫌いっ娘のRSpec

assert_my_pretty_model m

Page 29: テスト大嫌いっ娘のRSpec

何が正解なのかすぐ読めない

Page 30: テスト大嫌いっ娘のRSpec

assertはメソッドにくるまない

Page 31: テスト大嫌いっ娘のRSpec

3. DRYでないテスト

Page 32: テスト大嫌いっ娘のRSpec

m = Company.new(:name=>"万葉", :type => "株式会社", ......)× 30行 × 5file

Page 33: テスト大嫌いっ娘のRSpec

コードの変更に弱い

Page 34: テスト大嫌いっ娘のRSpec

悪態なしでは作業できない

Page 35: テスト大嫌いっ娘のRSpec

テストだってDRYがいい

Page 36: テスト大嫌いっ娘のRSpec

テストの関心事以外は隠蔽する

Page 37: テスト大嫌いっ娘のRSpec

m = create_company(:type => "株式会社")# ほかの属性はデフォルトで埋めてくれる

Page 38: テスト大嫌いっ娘のRSpec

4. 依存しあうテストデータ

Page 39: テスト大嫌いっ娘のRSpec

データ追加でテストが通らない

Page 40: テスト大嫌いっ娘のRSpec

テストデータはテストごと

Page 41: テスト大嫌いっ娘のRSpec

5. 悲観的完璧主義

Page 42: テスト大嫌いっ娘のRSpec

エラー0必ず確認カバー率

Page 43: テスト大嫌いっ娘のRSpec

自動テストは所詮テストの一部

Page 44: テスト大嫌いっ娘のRSpec

緩さが合理性につながる

Page 45: テスト大嫌いっ娘のRSpec

コミュニケーションが補完する

Page 46: テスト大嫌いっ娘のRSpec

RSpec

Page 47: テスト大嫌いっ娘のRSpec

振舞駆動開発のフレームワーク

Page 48: テスト大嫌いっ娘のRSpec

動作する仕様書

Page 49: テスト大嫌いっ娘のRSpec

使う前は懐疑的

Page 50: テスト大嫌いっ娘のRSpec

RSpec on Rails

Page 51: テスト大嫌いっ娘のRSpec

騙されないテストだよとか

Page 52: テスト大嫌いっ娘のRSpec

shouldにしても嬉しくないとか

Page 53: テスト大嫌いっ娘のRSpec

ところが

Page 54: テスト大嫌いっ娘のRSpec

.should と打つと気分がいい!

Page 55: テスト大嫌いっ娘のRSpec

仕様書いてる気になる

Page 56: テスト大嫌いっ娘のRSpec

RSpec + 5箇条で快適だ!

Page 57: テスト大嫌いっ娘のRSpec

好きになってきた

Page 58: テスト大嫌いっ娘のRSpec

コツを模索中