2009-01-07 115 views
6

確保在Controller操作中生成正確的RJS的最佳方法是什麼?在RSpec控制器規格中測試RJS的最佳方法?

例如,我想要確保一個div突出顯示爲這樣:

def new 
    render :update do |page| 
    page.visual_effect :highlight, :some_div 
    end 
end 

咆哮: 這是迅速成爲我厭倦RSpec的原因之一使用了一年後。這應該是一個簡單的問題,但這是一個似乎沒有人能夠回答的問題。

我已經多次被告知RSpec指定了行爲,我在這裏要做的只是「測試代碼」。突出顯示:some_div就是我所知道的行爲。

回答

4

是不是可以爲響應的輸出設置控制器測試並查找一些JavaScript格式?

xhr :get, :new 
    response.should be_success 
    response.should have_text("... test for JS response ...") 

我也可能會使用硒在客戶端上更充分的測試,並且控制器檢測更多的是「健全」檢查。

+0

我試過這個,但我只能真的測試視覺效果;而不是replace_html等。我可以測試某些東西被替換,但不是部分名稱,當地人等。 – 2009-01-23 13:30:58

4

rspec爲您提供了包裝assert_select_rjs的has_rjs幫助程序。下面是一些細節:

http://jonathan.tron.name/2007/11/24/rspec-and-inline-rjs

不幸的是assert_select_rjs只涵蓋:

:replace, :replace_html, :show, :hide, :toggle, :remove and :insert_html 

因此,這將無法處理您的問題visual_effect的。但是ARTS插件確實支持視覺效果。

​​

你應該能夠結合起來,與rspecs新 '規範/互操作性/測試'。

http://blog.davidchelimsky.net/2009/2/2/rspec-works-with-test-unit