3

私はRailsアプリに使用しており、hpricot_matchersと最近ではrspec_tag_matchersをマッチャー実装として維持しており、内部にネストされたタグを持つ文字列をテストしています(たとえば、HTMLやXMLなど)。特にラストはノコギリを使っているのでとても良いです。

最近、Sinatra での開発を開始しました。もちろん、rspec をバンドルしました。have_tag (タグと属性の値をチェックする) のような特定のマッチャーが利用できないことが判明するまで、すべてが素晴らしくきちんとしています。さて、これは Sinatra にあると本当に素晴らしいことです。上記の gem は、Rails 依存関係を持つ rspec-Rails 依存関係があるため、使用できません。

質問は次のとおりです。Sinatra で同じタスクを実行できるツールはありますか? シナトラマッチャーはオープンにいますか? しかし、何も見つかりませんでした。

4

3 に答える 3

1

実際に仕事をする拡張機能を見つけました...

https://github.com/kucaahbe/rspec-html-matchers

もう少し様子を見るべきでした。Rails rspec マッチャー ヘルパーが行うことすべてをカバーしているかどうかは確認していませんが、非常に価値のある have_tag を含め、重要なもののほとんどはそこにあります。ただし、サブタグのネストされた条件に関しては、両方の仕様が少し異なります。

rspec_tag_matchers(rails3):

text.should have_tag("p") do |paragraph|
  paragraph.should have_tag("strong")
end

rspec_html_matchers(sinatra/...):

text.should have_tag("p") do 
  with_tag("strong")
end
于 2012-09-28T10:15:52.980 に答える
0

私はあなたがこれを探していると思います...

Rspec マッチャーのコード例

コードは次のようになります...

          # File lib/sinatra/tests/rspec/matchers.rb, line 52
def have_a_page_header(expected, tag = 'h2') 
  simple_matcher("have an '#{tag}' page header with [#{expected.inspect}]") do |given, matcher|
    given.should have_tag(tag, expected, :count => 1)
  end
end

ポイントは、いつでも独自のマッチャーを作成できるということです。

それが役立つことを願っています。

于 2012-09-28T07:47:22.337 に答える
-1

Sinatra アプリ (または任意のラック アプリ) をテストするときにCapybaraを使用できます。Capybara には、おそらくニーズを満たすいくつかのマッチャーが含まれています。

  • have_selector('table tr')
  • have_xpath('//table/tr')
  • have_css('table tr.foo')
于 2012-09-28T14:52:27.810 に答える