确保在Controller操作中生成正确的RJS的最佳方法是什么?
例如,我想确保div突出显示为:
def new
render :update do |page|
page.visual_effect :highlight, :some_div
end
end
咆哮: 这很快成为我使用RSpec一年后厌倦了RSpec的原因之一。这应该是一个简单的问题,但是没有人似乎有答案。
我一再被告知RSpec指定行为,我在这里尝试做的只是“测试代码”。突出显示:some_div就是我所知道的行为。
答案 0 :(得分:4)
是否无法为响应的输出设置控制器测试并寻找一些javascript格式?
xhr :get, :new
response.should be_success
response.should have_text("... test for JS response ...")
我也可能会使用Selenium在客户端上更全面地测试它,而Controller测试更像是一种“理智”检查。
答案 1 :(得分: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'ppec / interop / test'结合起来。
http://blog.davidchelimsky.net/2009/2/2/rspec-works-with-test-unit