2010-05-02 36 views
1

我想规定一个事实,即我的应用程序布局视图打印出闪光通知。然而,下面的代码不运行,该flash方法没有考虑到规范存在(相对于控制器的规格它完美的作品):在布局视图规范(rspec2,rails3)中测试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。

谢谢!

回答

0

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

所以,我认为你是对的。 Rails3使用RSpec2或RSpec2尚未实现这个功能,但要么使用闪存通知有一些新的技巧。

如果您想要将黄瓜故事转移到Rails3,那么问题就很大。

+0

我认为这个问题现在已经在master分支上解决了。我没有测试它,但它应该没问题:http://github.com/rspec/rspec-rails/issues/closed#issue/45 – jbpros 2010-05-26 19:45:23

+0

测试过了,现在可以确认它的正常工作。 – Cimm 2011-03-27 14:31:28

0

我不认为有一个简单的方法来与Rspec做到这一点。然而,这对Cucumber,一个完美的应用程序,你可以写这样的事情:

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

当然,你的情况会做一些独特的东西到你的应用程序,所以你可以测试你的预期实际的消息被渲染中。

+0

谢谢你的提示,但我已经在使用黄瓜,从“特征的角度”。实际上,我以BDD-ish的方式开发该应用程序:我编写一个功能,运行它,编写规范,运行它们,使其通过,使功能通过,重构,并重新开始下一个功能。 黄瓜方案在特定上下文中发生某些事件之后,检查页面上的特定通知,如最终用户所期望的那样。视图规范着重于应用程序布局视图本身的职责。其中之一是显示任何Flash通知。这就是我想要在这里详细说明的。 – jbpros 2010-05-05 12:24:00

+0

如果您的功能发现flash通知已添加到回复中,那么您的工作就完成了。用户不会在意通知来自视图模板,布局,部分还是其他内容。 – zetetic 2010-05-05 16:20:45

+0

这是正确的,用户不会在意。这就是为什么在我的功能中没有提到一个观点或这样的概念。但从开发人员的角度来看,我想确保我的观点能够正确地工作,并且我可以依赖其在任何情况下的行为。无论如何,重点是我认为在Rspec2中缺少一些东西:在视图内闪烁嘲讽(我认为它在Rspec1中工作)。 – jbpros 2010-05-07 10:15:34