Я пишу интеграционный тест для rspec и хочу проверить, что нажатие на ссылку приводит к правильной странице модели.Более конкретно, я хочу проверить это в списке ссылок, которые имеют одинаковое имя, но разные базовые URL.
Из того, что я узнал, вы не можете использовать селектор атрибутов css с click_link, так как он ищет только конкретный текст или идентификатор домена.Вместо этого я пытаюсь использовать метод webrat within
, но как только я выберу ссылку, как ее щелкнуть?Я полагал, что link.click
в области действия ссылки будет работать, но он не сможет сказать, что метод click
не определен:
Failure/Error: link.click
NoMethodError:
undefined method `click' for #<Webrat::Scope:0x0000010505ae00>
Вот мой тест:
require 'spec_helper'
describe "BrandLinks" do
before(:each) do
@base_title = "My App - "
@brand = Factory(:brand)
second = Factory(:brand) # <= Same name, different slug
third = Factory(:brand, :name => "Awesome USA Brand!!")
@brands = [@brand, second, third]
end
it "should show me the brand page when I click on a brand link" do
get '/brands'
within "a[href=#{brand_path(@brand)}]" do |link|
link.click
end
response.should be_success
response.should have_selector(
"title",
:content => "#{@base_title}Brand - #{@brand.name}"
)
end
end