no_picture

Rspecマッチャー rspec-html-matchersを試してみてる

Ruby on Railsで ViewやHelperの Specを書く際に利用するマッチャーに良いのがないか探してます。現在のRspecはcontainぐらいしかないので、細かくチェックしたい場合は若干使いづらいです。というわけで、rspec-html-matchersを試しています。 以前は rspec-tag_matchers を使用していたのですが、出力がちょっとイマイチでした。 Ruby Toolsでざらざらと探した結果、rspec-html-matchersを試してみることにしました。 Form用のマッチャーがいろいろあったり、内部に存在するタグをチェックしたりできるのが嬉しいですね。capybaraのhave_cssはsubject側で find(selector)しておく必要があるので、ややめんどくさいです。 いまのところの不満点は Hashで渡していくのがちょっと格好悪い 正規表現での属性チェックができなかった 暗黙的なsubjectを使用する場合、ブロックがあると不具合がでる 3番目なんですが、have_tag マッチャーにブロックを渡し場合 shouldメソッドのレシーバをかかないと、ブロック内へと処理が流れないようです。 subject { render } it do should have_tag("a") do # このブロック処理が走らない with_tag("b") end end のように書いてしまうと with_tag("b") の部分が動作しません。3行目を明示的に subject.shouldとすると動いてくれました。rspecの問題なのか、rspec-html-matchersの問題なのか切りわけが難しいのでとりあえず、我慢することにしました。 ブロックを渡さない場合は大丈夫です。 他は良好に使えています。 View Specの良い例が欲しいです。