15

ビューファイルに次のようなものがある場合<%= link_to "Help", help_path %>、rspecを使用して以下をテストするにはどうすればよいですか?

  1. に行きhelp_pathます。
  2. 内容は「ヘルプ」です。

私は現在カピバラを使用しています。


編集

以下の答えはうまくいくかもしれませんが、私はこれを行うためのより簡単な方法を見つけたと思います。

describe "some link on whatever page" do
  subject { page }
  before { visit whatever_path }
  it { should have_link('Help', href: help_path) }
end
4

4 に答える 4

5

カピバラを使うなら

my_link = find(:css, "a:contains('Help')")
my_link.click

and get page status, should be 200 or simply check


my_link.href

しかし、rspec の統合仕様にルート仕様を単純に追加することもできます。このように、このルートが存在することを常に確認します

describe HelpController do

  it "should have proper routes" do
    {:get => "/halp/772/parser/18/edit" }.should be_routable
    {:post => "/halp/772/parser" }.should be_routable
    {:delete => "/halp/772/parser/18" }.should be_routable          
  end

end
于 2012-05-18T08:04:27.877 に答える
2

ファイルは次のようになります。

require 'spec_helper'

feature "Help" do
  scenario "creation" do
    visit help_path                         # access your help path
    page.should have_content("Help")        # verify content
  end
end

カピバラでのテストで助けが必要な場合は、ここでいくつか見つけることができます: Railscasts #257 Request Specs and Capybara or Capybara repo at Github

于 2012-05-18T08:01:24.203 に答える
2

have_tagマッチャーを使用します。ここにチートシートがあります。

response.should have_tag("a[href$=#{help_path}]", :text => "Help")

PS Railsガイドを読みましたか?

于 2012-05-18T08:03:36.980 に答える
0

click_link "Help"

カピバラチートシートの要点: https://gist.github.com/zhengjia/428105

于 2015-03-24T17:50:14.353 に答える