RSpec
Capybara

RSpec, capybara memo

More than 1 year has passed since last update.

RSpec とカピバラメモです。 :rat:
少しずつ増えるかもしれない。増えないかもしれない。です。

rspec

対象を絞って実行

focus: true のテストのみ実行する

  • spec_helper で以下の設定をしておく
  config.treat_symbols_as_metadata_keys_with_true_values = true
  config.filter_run :focus
  config.filter_run_excluding :skip
  config.run_all_when_everything_filtered = true

  • it とか context とか describe とかに focus: true を付けて実行する
  • 外すの忘れがちなので、git hooks/pre-commit とかで弾くと便利です。
  describe "テスト対象", focus: true do
    ...
  end
  • itfocus: true をつけたい場合、f を頭につけるだけで便利。とくに shared_example のなかにやるやつとかね。
  fit 'hogehoge' do
  # spec...
  end

hamlのhelperメソッド使う

# spec_helper
RSpec.configure do |config|
  config.include Haml, type: :helper
  config.include Haml::Helpers, type: :helper
  config.before(:each, type: :helper) do |config|
    init_haml_helpers
  end
end

高速化

# config/environments/test.rb

  # Speed up tests by lowering BCrypt's cost function.
  require 'bcrypt'
  silence_warnings do
    BCrypt::Engine::DEFAULT_COST = BCrypt::Engine::MIN_COST
  end
  • DEFAULT_COST は 10
  • MIN_COST は 4
  • 僕は BCrypt::Engine::DEFAULT_COST = 1 にしてみました

参考

capybara

Ajax

クリックする

  • click_link('link_text')
  • click_link('#id')
  • find('#id').click

その他

XPath 覚えられない

  • XPath その昔よく使ったはずなんだけど...覚えられない。
  • 僕には読みにくい感じがするので、なるべく使うの避けてる
  • ときどきやむを得ず使う時がある
  • でも憶えられないし、ググって取りたいやつ取るの時間かかる。

便利ツール

  • なんかラクに取得できるのありそうだな〜調べてみたらあった。
  • 右クリックして Copy XPath
  • ブラウザの開発ツールに付いてたわ〜
    • Chrome と Firefox の Firebug にはありました。