3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

RSpec, capybara memo

Last updated at Posted at 2014-03-03

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 にはありました。
3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?