RSpec とカピバラメモです。
少しずつ増えるかもしれない。増えないかもしれない。です。
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
-
it
にfocus: 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
にしてみました
参考
-
http://blog.syncopelabs.co.uk/2012/12/speed-up-rspec-test.html
-
Document Explicit Dependencies Through Tests ミニマムにすると速くなる
capybara
Ajax
クリックする
- click_link('link_text')
- click_link('#id')
- find('#id').click
その他
XPath 覚えられない
- XPath その昔よく使ったはずなんだけど...覚えられない。
- 僕には読みにくい感じがするので、なるべく使うの避けてる
- ときどきやむを得ず使う時がある
- でも憶えられないし、ググって取りたいやつ取るの時間かかる。
便利ツール
- なんかラクに取得できるのありそうだな〜調べてみたらあった。
- 右クリックして Copy XPath
- ブラウザの開発ツールに付いてたわ〜
- Chrome と Firefox の Firebug にはありました。