読者です 読者をやめる 読者になる 読者になる

テストのときだけswitch_pointを無効にしたい

Railsのgemで複数DBを扱うためのswitch_pointというものがあります。 https://github.com/eagletmt/switch_point

簡単にslaveとmasterへのアクセスを切り替えられて便利なのですが、RSpec実行時にはswitch_pointを無効にしたくなります。 FactoryGirlを使ってのデータ作成やモデルからデータを作成/更新/削除するコードをRSpecに書きますが、 それらに対しても Model.with_writable do ... end のように書くのはちょっとしんどいです。 そういう場合は、spec_helper.rbに

config.before(:suite) {
  SwitchPoint.writable_all!
}

と書くと無効化できます(全部masterへの接続扱いになる)。 もしテストの時にもswitch_pointを有効にして、ちゃんとテストしたい場合は、以下の記事の設定をするとよいです。 http://yoshiori.hatenablog.com/entry/2015/06/10/203341