2009-01-07 120 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