布局视图规范中的测试闪存通知(rspec2,rails3)

时间:2010-05-02 15:46:51

标签: ruby-on-rails rspec

我想说明我的应用程序布局视图打印出flash通知的事实。但是,以下代码无法运行,flash方法在视图规范中不存在(与完美运行的控制器规范相反):

describe 'layouts/application' do
  it "renders flash notices" do
    flash[:notice] = "This is a notice!"
    render
    response.should contain "This is a notice!"
  end
end

我的代码是错误的还是Rspec 2中的“尚未实现的功能”?我在Git上的主分支上使用Rails3和Rspec2。

谢谢!

2 个答案:

答案 0 :(得分:0)

我不认为使用Rspec可以轻松实现这一目标。但是,它是Cucumber的完美应用程序,您可以在其中编写如下内容:

  Scenario: Layout displays flash messages
    Given a layout
    When I render the view
    Then I should see "This is a notice!"

当然,您的方案会为您的应用程序执行一些独特的操作,因此您可以测试您所期望的实际消息是否正在呈现。

答案 1 :(得分:0)

有趣的是,我只是在这里搜索flash问题,因为我在Rails 3 beta 3和RSpec 2中的身份验证黄瓜故事似乎在他们点击闪存通知的地方被打破了。

所以,我认为你是对的。在使用RSpec2或RSpec2的Rails3中使用闪存通知时,有一些新技巧尚未实现。

如果您现在正尝试将Cucumber故事移植到Rails3,那么问题非常严重。