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

リア充爆発日記

You don't even know what ria-ju really is.

poltergeistでテストごとに設定を変更する方法

poltergeistはここにいろんな設定内容の説明が書いてある。
https://github.com/jonleighton/poltergeist#customization

で、今回js_errorsを一部のテストだけfalseにしたかったので、その方法を調べた。

何かそれようのメソッドがある感じじゃなかったので、ソースを追ってみたところ、js_errorsはdriver.browserのプロパティで、単純にbooleanをセットすればよいだけっぽかった。
https://github.com/jonleighton/poltergeist/blob/master/lib/capybara/poltergeist/driver.rb

結果、以下のようにして対応した。
spec_helper.rb

  config.before(:each, js_errors: false) do |app|
    app.page.driver.browser.js_errors = false
  end
  config.after(:each, js_errors: false) do |app|
    app.page.driver.browser.js_errors = true
  end

各テスト

    scenario 'some scenario', js: true, js_errors: false do
       ~snip~
    end

各テストで設定しているjs_errorsとconfig.beforeなどで受けているjs_errorsはただの識別子なので、これが気に食わなければ別に何でもいい。

全部行けるかどうかわからないけど、driver.rbのoptionsの行方を追うと、だいたいの項目がこんな感じで対応できるんじゃないかな、と思う。


エバニュー(EVERNEW) オレンジボーン  EBB002

エバニュー(EVERNEW) オレンジボーン EBB002