我正在使用 Rails 3 学习 RSpec 2,虽然到目前为止它进展顺利,但在视图中测试帮助程序 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
但是,我不知道如何让视图规范识别“当前”的含义,因为它是一个视图规范,它只测试视图,而不是请求。我知道这在控制器规范中会简单得多,但我认为我应该测试视图在其规范中的作用,并且将此测试移到控制器规范中会造成很多混乱。我要问的是:有没有办法告诉视图规范,也许在“之前”块中,当前页面是什么?另外,我在组织测试方面做得对吗?这个测试是否应该正确地存在于控制器规范中?