猫の魔法

主にruby系の技術メモを記載

個人的メモ:Rails AntiPatterns(10)

CHAPTER7 Testing

AntiPattern: Mock Suffocation

Solution: Tell, Don’t Ask

  • スタブが多く出来る物はスタブになっている側の機能が特定の機能を実行するのに多くの質問をしている可能性がある。
  • 質問として分かれてしまっているmethodを意味のある単位に集約したmethodを用意することで、スタブ数を少なくできる
    • ★stubってなんだと思って調べたらRspecの機能だった。*1

AntiPattern: Untested Rake

  • rakeタスクをテストしようとする際に、一番簡単な方法はテストでシステムコマンドを発行すること
  • しかしながら、そのようなやり方はテストの複雑化(システムコマンドで作成されたファイルやDB上のデータのクリーンアップ)を招く。

    Solution: Extract to a Class Method

  • テスト用のmodelクラスを作り、その中でrakeタスクを処理するタスク入れてあげるようにする。
  • そうすることで通常のmodelを用いたテストと同じようにテストを行う事が出来る。
    • ★この手法はDSLを使うようなアプリのテストだったら適用出来そう

AntiPattern: Unprotected Jewelsの手前まで読了。

関連

個人的メモ:Rails AntiPatterns(一覧) - 猫の魔法