Как я могу проверить структуру меню сайта с помощью RSpec? - PullRequest
0 голосов
/ 02 февраля 2012

Как мне лучше всего протестировать полноту структурной полноты страницы?

В качестве примера я хотел бы убедиться, что в меню сайта есть все обязательные элементы. Он построен с использованием обычного CSS-формата и содержит следующие элементы:

<li><%= link_to "Some page", some_path %></li>
...
<li><%= link_to "Login", path_to_login_action %></li>
<li><%= link_to "Register", path_to_registration_action %></li>

Или это так или иначе бессмысленно? (все еще пытаюсь выработать хорошее понимание стиля тестирования)

1 Ответ

0 голосов
/ 02 февраля 2012

Вы можете использовать метод assert_select:

describe "home page" do
  it "diplays all menu elements" do
    get "/home"
    assert_select "ul.menu li" do
      assert_select "a.first", "Some page"
      assert_select "a.another-class", "Login"
      assert_select "a.last", "Register"
    end
  end
end

в другом случае, включите вебрат или капибара в свой Gemfile:

 gem 'capybara'
 gem 'webrat'

и использовать метод have_selector:

describe "home page" do
  it "diplays all menu elements" do
    visit "/home"
    within "ul.menu li" do 
      page.should have_selector("a.first", :text => "Some page")
      page.should have_selector("a.another-class", :text => "Login")
      page.should have_selector("a.last", :text => "Register")
    end
  end
end

Подробнее о Rspec-rails: http://github.com/rspec/rspec-rails#readme (см. Главу «Спрос на спецификации»)

...