6

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

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

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

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

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

4

2 回答 2

4

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

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

我也可能会使用 Selenium 在客户端上进行更全面的测试,而 Controller 测试更像是一种“健全性”检查。

于 2009-01-19T23:02:30.373 回答
4

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 new 'spec/interop/test' 结合使用。

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

于 2009-02-17T14:32:42.760 回答