あっという間に満席となってしまった秋イベント。多数のお申し込みをいただき、とても嬉しいです。ありがとうございました。「秋の宴」はPFP関東の皆さんのご協力のもと、懇親会を企画中です。ご参加予定の皆様は、当日実費3000円をお支払いください。ご連絡が事後になり申し訳ありません。●「秋の宴」PFP(プロジェクトファシリテーションを推進する会)さんのご協力のもと、秋の宴を開催いたします。http://projectfacilitationproject.go2.jp/wiki/※「秋の宴」にご案内してございます。宴に関する情報は、今後も更新される可能性があります。[25]■はじめに今日は、RSpecでスタブの書き方を勉強します。by!"、それ以外の時間なら"hey!"を返すプログラムです。endendここで厄介なのがTime.nowです。実際のTime.nowのままでは、時間帯によって返す値が異なり、sayメソッドのテストがやりにくくなっています。■RSpecのスタブを使わなかった場合テストし易い構造に変えてしまって対処する方法は、いくつか思いつきます。インジェクトしてテストする。-そもそもAPIが悪いと判断。APIを変えてしまう。■RSpecのスタブを使った場合RSpecのstub!メソッドを使えば、上記のような対処は不要で、上記のソースのままでもスタブによるテストが可能です。下記にRSpecを使ったスタブによるテストを例を示します。}end■解説Time.stub!(:now).and_return(Time.gm(*"2007-10-01-09-00".split("-")))がポイントです。これだけで、実際の時間ではなくスタブによって指定された時間(9時)を返すようになります。Patterns[*1]によると、スタブとモックの定義を分けています。象の要素に問い合わせます。"hello!"に相当します。対して、モックは、テスト対象の要素とモックとの間でどんなメッセージのやり取り行うかの期待をモックに明記し、テスト対象の要素を実行したのちに、モックにVerifyかを問い合わせます。次回は、RSpecを使ったモックについて勉強してみたいと思います。_______________________________________________________________________この記事への評価にご協力をお願いします。URLをクリックして、「ご協力ありがとうございました」のメッセージがご使用のブラウザに表示されれば投票完了です。