Как проверить link_to_unless_current в группе примеров вида RSpec - PullRequest
1 голос
/ 21 октября 2010

Я изучаю RSpec 2 с Rails 3, и пока он довольно хорошо продвигается, у меня возникла проблема с тестированием помощника link_to_unless_current в представлении.То, что я пытался сделать, это использовать простой assert_select из спецификации представления, чтобы определить, создается ли ссылка в следующем частичном представлении (HAML):

%article.post{ :id => "post-#{post.id}" }
  %header.post-title
    %h2= link_to_unless_current post.title, post
  .post-content= raw post.body

Однако я не знаюкак заставить спецификацию представления распознавать, что означает «текущий», потому что это спецификация представления, и она только проверяет представление, а не запрос.Я знаю, что в спецификации контроллера это было бы намного проще, но я думаю, что мне следует проверить, что делает представление в своей спецификации, и что перенос этого теста в спецификацию контроллера может сильно сбить с толку.Я спрашиваю: есть ли способ сообщить спецификации представления, возможно, в блоке «до», какова текущая страница?Кроме того, правильно ли я поступаю в отношении организации моих тестов?Должен ли этот тест по праву находиться в спецификации контроллера?

1 Ответ

2 голосов
/ 22 октября 2010

Неважно, я в конце концов понял это.Вы должны заглушить UrlHelper.current_page?и он возвращает значение true, если переданные параметры URL соответствуют странице, которую вы хотите использовать в качестве текущей страницы:

view.stub("current_page?".to_sym) {|options| url_for(options) == post_path(@post) }

Я до сих пор не знаю, следует ли мне выполнять тесты RSpec, но, что угодно, это работает.: P

...