猫の魔法

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

個人的メモ:Rails AntiPatterns(11)

CHAPTER7 Testing

AntiPattern: Unprotected Jewels

  • プラグインやgemはよくテストされている事が重要だが、実際にプラグインや、gemを作る際にテストを作るのは簡単ではない。
    • gemやプラグインは不特定多数の物から呼ばれるため、テストを行う際にテスト用の別アプリケーションを立ててテストするのが簡単だが、保守性の面から考えるとよくない
  • 作ったgemやプラグインrailsとどれだけ疎結合になっているかで、3種類のテスト戦略がある。

Solution: Write Normal Unit Tests Without Rails

  • 完全にrailsから分離されているgemやプラグインはテスト自体をその機能の単体テストに閉じれる。
    • 出来ればこの形を目指せるとよい

Solution: Load Only the Parts of Rails You Need

  • railsの機能の一部使用しているgemやプラグインは必要なrailsのgemのみを使用するようにする。
    • ActiveRecodeが必要なら、それだけをtest_helper.rbに含める

Solution: Break Out the Atom Bomb

  • Rails全体を使用するgemやプラグインの場合は、上記の解決策は取れない。
  • そのような場合はtest以下にテスト用のrailsアプリケーションを構築する
    • test以下のrailsアプリケーションはプラグインの実態をそのままでは見れないので、environment.rb内にconfig.plugin_pathsを使ってpluginの場所指定してあげる
      • ★pluginの場合はそうだがgemの場合はどうするのか?

C HAPTER 8 Scaling and Deployingの手前まで読了

関連

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