2010-05-02 54 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