Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Assert First

Assert First

Hisashi Kamezawa

January 24, 2018
Tweet

More Decks by Hisashi Kamezawa

Other Decks in Programming

Transcript

  1. Assert First
    亀澤尚志 (@hisas)
    2018/01/24

    View full-size slide

  2. 自己紹介
    - 亀澤尚志 (Kamezawa Hisashi)
    - @hisas
    - 2017年度入社新卒
    - フィヨルドインターン卒
    - Ginza.rbにたまに出没

    View full-size slide

  3. 本日お話しすること
    - Assert First との出会い
    - Assert First とは?
    - Assert First をオススメする理由

    View full-size slide

  4. 本日お話しすること
    - Assert First との出会い
    - Assert First とは?
    - Assert First をオススメする理由

    View full-size slide

  5. ペアプロでやったこと
    ① 要件定義
    ユーザー検索を名前のあいまい検索で実装
    ② TODO リストの作成

    View full-size slide

  6. ペアプロでやったこと
    ③ テストを書く
    - 何が達成されていれば良いかをまず考えるため最後の行から埋めていく
    - RSpecでは visit から入るのではなく expect から書くイメージ
    ④ 機能を実装

    View full-size slide

  7. 本日お話しすること
    - Assert First との出会い
    - Assert First とは?
    - Assert First をオススメする理由

    View full-size slide

  8. アサーションを最初に書こう

    View full-size slide

  9. いつアサーションを書くべきだろうか——最初に書こう
    - システム構築はどこから始めるべきだろうか。システム構築が終わったらこうなる、
    というストーリーを語るところからだ。
    - 機能はどこから書き始めるべきだろうか。コードが書き終わったらこのように動く、と
    いうテストを書くところからだ。
    - ではテストはどこから書き始めるべきだろうか。それはテストの終わりにパスすべき
    アサーションを書くところからだ。
    参考文献 Kent Beck 著 和田卓人 訳(2017) 「テスト駆動開発」

    View full-size slide

  10. 本日お話しすること
    - Assert First との出会い
    - Assert First とは?
    - Assert First をオススメする理由

    View full-size slide

  11. Assert First による恩恵
    思考が整理され、問題をシンプルに捉えることができる
    → 複雑なテストを書くときに良さそう
    → 逆に簡潔に書けるテストや既存のテストに似たテストに無理に使う必要はない

    View full-size slide

  12. ご清聴ありがとうございました

    View full-size slide