繁体   English   中英

在RSpec Controller规范中测试RJS的最佳方法是什么?

[英]Best way to test RJS in RSpec Controller specs?

确保在Controller操作中生成正确的RJS的最佳方法是什么?

例如,我想确保div被突出显示为:

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

Rant:这很快成为我使用RSpec一年后厌倦RSpec的原因之一。 这应该是一个简单的问题,但是没有人似乎有答案。

我一再被告知RSpec指定行为,我在这里尝试做的只是“测试代码”。 突出显示:some_div就是我所知道的行为。

是否无法为响应的输出设置控制器测试并寻找一些javascript格式?

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

我也可能会使用Selenium在客户端上更全面地测试它,而Controller测试更像是一种“理智”检查。

rspec为您提供了包含assert_select_rjs的have_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插件确实支持视觉效果。

http://github.com/timocratic/arts/tree/master

你应该能够将它与rspecs新的'spec / interop / test'结合起来。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM