rspec

seach_formオブジェクトのテスト

検索項目が多い検索フォームを実装する時は、form_forヘルパーとActiveModel::ModelをMixinしたオブジェクトを使ってると思う。 (こういうやつ→http://kazuph.hateblo.jp/entry/2012/10/06/222831) その検索フォームで使ってるオブジェクトのテストを書いて…

インテグレーションテストをすこし早くする

環境 rack-test (0.6.2) poltergeist (1.5.0) テスト遅いのなんとかしたくて試験毎に呼ばれるログイン処理なんとかならんかみたいの考えた結果、ドライバーのAPIを直接叩くようにしてみた。ちなみに、ログイン処理はspec_helper.rbに書いてどのテストからで…

Rspecの結果を通知センターに表示する

https://github.com/twe4ked/rspec-ncMacの通知センターにrspecの結果を表示するgemだよ。 テスト中はTwitterとか別のことをやりだすマンなのでテスト終ったのがわかるととても助かる。 導入もすごく簡単でGemfileにgemを追加と.rspecに追記するだけ。 Gemfi…

featureスペックで確認ダイアログをクリックしたい

capybara (2.2.1) poltergeist (1.5.0) rails (4.1.1)link_toヘルパーにカスタムdata属性confirmを書くとjsの確認ダイアログを生成してくれる。 <%= link_to icon("trash"), admin_book_path(book), method: :delete, data: { confirm: "『#{book.name}』を…

specをすべて流したら落ちるテストがあってつらい

全spec流さないと再現しない。 feature_specだと、画面ベースでのエラー内容なのでピンと来ないことがけっこうある。 Capybara::ElementNotFound: Unable to find file field "event_photo[image]"よく落ちる行の例外を補足した時binding.pryを走るようにす…

コントローラーのindexアクションのテスト

ArticlesController < ActionController::Base def index @articles = Article.all end end describe ArticlesController do describe "GET 'index'" before { get :index } it { expect(assgins(:articles)).to Article.all } end end end テストが少ないう…

futureスペックのjs: trueなテストが動かない時 解決編

Rails4.1アップデートの過程でjs: trueなテストがこけるようになっていた原因がわかった。js: trueのテストの時、usersテーブルに入っているはずのレコードが空になっていて、ログインできずに目的の要素を発見できずにビジーループからのタイムアウトが起き…

FactoryGIrlを省略するよ

rspec-core (2.13.1) factory_girl (4.2.0) # spec/spec_helper.rb .......... RSpec.configure do |config| config.include FactoryGirl::Syntax::Methods # 追加する ........... end ........... build(:hoge)、create(:bar)で呼べるよ。

letとlet!の違い

rspec-rails (~> 2.13.0)テストが見やすくなってる気がするので自分はletよくつかいます。 違い 目的は同じくメモ化で、違いはタイミングだけっぽい。 何が違うのかと言うと letは引数のシンボル名が呼ばれるまでは評価されない。 let!だと、beforeが始める…

1人で考えてたら行き着いたRspecの書き方とか その1

rspec-core (2.13.1) ruby2.0Rspecってすごく個性でると思うので複数人で開発する時は規約を設けないとだめかも。 letメソッド使う let(:word) { FactoryGirl.create(:word) } メモ化っていうらしい。 letの引数に書いているシンボル名を試験内で呼ぶとロー…