Tdd

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Favorites, Groups & Events

    Tdd - Presentation Transcript

    1. TDD テスト駆動開発 Test Driven Development
    2. 自己紹介 おおいしつかさ 1975 年生まれ 6 月 1 日付けで入社 web で仕事をはじめて 9 ヶ月
    3. http://www.kaeruspoon.net
    4. Amazon Resources Rails のプラグイン git://github.com/tsukasaoishi/amazonresources.git kaeru_keyword キーワードリンク TRIE
    5. TDD 歴 ・半年 ・ TestUnit -> Rspec
    6. TDD テスト駆動開発 Test Driven Development
    7. 今までの開発 コーディング -> テスト TDD テスト -> コーディング
    8. 注意 !!
    9. TDD(Test Driven   Development) の テストとは、 テストのことではない
    10. プログラムの 仕様 のこと TDD のテストとは
    11. 仕様とは何か インターフェース インターフェースとは何か 振る舞い
    12. BDD 振る舞い駆動開発 Behavior Driven Development
    13. TDD のテストでは振る舞いを書く 関係ないことは 書かない
    14. 内部実装はどうでもいい プログラムの目的は 決められた 仕様 ( 振る舞い )‏ のとおりに動くこと
    15. TDD のテストは プログラムが仕様通りに 動くことを 保証 する
    16. TDD のテストは プログラムの品質を ( 完全には ) 保証 しない
    17. 基本的な流れ
    18. 3つのフェーズ レッド グリーン リファクタリング
    19. レッド テスト ( 仕様 ) を書く ↓ まだ本体はコーディングしていないのでテストは 失敗 する
    20. レッド ひとつのテストの粒度は できるだけ 細かく 小さく
    21. グリーン 本体をコーディングする ↓ テストが成功する
    22. グリーン テストに書かれていないことは 実装しない テストが通ること だけ を目標に汚くコーディングする 何も考えない
    23. グリーン 「きれいだけど動かないコード」に一片の価値もなし 「汚いけど動くコード」をまずは目指す
    24. リファクタリング どんなにコードを 変容 させてもテストが通れば OK 保証されている 安心感
    25. コミット テストが終わったらコミットする コミットできる 安心感
    26. 実践
    27. 舞台 Ruby on Rails Rspec on Rails 機能 GET   /users/( ユーザ名 )‏ 指定されたユーザのページを表示
    28. コントローラの責任 リクエストに対し、適切なレスポンスを返す 適切なビューを選択する ビューが必要なデータをモデルから取得する
    29. レッド describe UsersController, “ の show アクション” do it “ において、ステータスコード 200 を返すこと” do get :show, :user_name => “tsukasa” response.should be_success end end
    30. レッド ひとつのテストの粒度は できるだけ 細かく 小さく
    31. レッド 1)‏ ActionController::UnknownAction in 'UsersController の show アクション において、ステータスコード 200 を返すこと ' No action responded to show ./spec/controllers/users_controller_spec.rb:6: Finished in 0.222733 seconds 1 examples, 1 failure
    32. グリーン class UsersController < ApplicationController def index end end
    33. グリーン Finished in 0.127367 seconds 1 examples, 0 failures リファクタリングは不要
    34. レッド it “ において、指定されたユーザ名のユーザオブジェクトを取得すること” do get :show, :user_name => “tsukasa” assigns[:user].should be_kind_of(User)‏ assigns[:user].should == users(:tsukasa)‏ end ↓ 失敗
    35. グリーン class UsersController < ApplicationController def index @user = User.find(:first, :conditions => [“name = ?”, params[:user_name])‏ end end ↓ 成功
    36. リファクタリング class UsersController < ApplicationController def index @user = User.find_by_name(params[:user_name])‏ end end ↓ 成功
    37. まとめ
    38. TDD とは ふつうのプログラマ のために 用意された開発のための 考え方の指標
    39. TDD の目指すもの 仕様通り に動作する きれいな コード
    40. TDD のすごいところ 実装とインターフェースを わけて考える ことができる
    41. TDD のすごいところ 安心感
    42. TDD のルール 1. インターフェースだけに注目しろ 2. 絶対に実装を考えるな 3. 一度にひとつのことだけ考えろ レッドの章
    43. TDD のルール 1. きれいに書くな 2. よけいなものを絶対に書くな 3. テストが通ることだけを目的にしろ 4. グリーンの状態でコードを書くな グリーンの章
    44. TDD のルール 1. 後回しするな 2. やりすぎるな 3. 躊躇なくぶち壊せ リファクタリングの章
    45. TDD のこつ ・リズム感重要 ・小さく細かくを繰り返す ・一度にひとつずつ
    46. TDD のやりにくいところ ・ビューのテスト  -> タグやクラス名が変わっただけで    テストがこける ・ private メソッドのテスト  -> public メソッドを通して確認する    しかない
    47. おしまい

    + tsukasa.oishitsukasa.oishi, 2 years ago

    custom

    665 views, 0 favs, 0 embeds more stats

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 665
      • 665 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 0
    • Downloads 2
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories