首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何编写功能/控制器测试来检查通过AJAX调用添加的内容?

如何编写功能/控制器测试来检查通过AJAX调用添加的内容?
EN

Stack Overflow用户
提问于 2009-04-05 17:19:52
回答 2查看 1.6K关注 0票数 1

测试

代码语言:javascript
复制
def test_generateCashFlowStmt
    get :getDateRangeForCashFlowStmt
    xhr :post,
      :generate_cash_flow_stmt, 
      {:fromDate =>  {:year=>"2009", :month => "3", :day=>"1"},
      :toDate => {:year=>"2009", :month => "3", :day=>"31"} }

    table = [ ....       ]
    assert_equal table, formatCashFlowStatementAsTable( assigns(:cashFlowStmt))
    assert_tag :tag => "div", :children => {:count => 1, :only => {:tag=>"table"} }
  end

控制器操作

代码语言:javascript
复制
def generate_cash_flow_stmt
      puts params
      fromDate = Date.civil params[:fromDate]["year"].to_i, params[:fromDate]["month"].to_i, params[:fromDate]["day"].to_i
      toDate = Date.civil params[:toDate]["year"].to_i, params[:toDate]["month"].to_i, params[:toDate]["day"].to_i 

      @cashFlowStmt = CashFlowStatement.new(fromDate, toDate)
      render :partial => "cash_flow_stmt", :layout => false
  end

视图

代码语言:javascript
复制
<% form_remote_tag(:loading => "Element.show('progress-indicator');",
        :update => "div_results",
        :complete => "Element.hide('progress-indicator');",
        :url=>{:action=>'generate_cash_flow_stmt'}) do %>
...
<% end %>
<div id="div_results">

测试在最后一次检查中失败,我检查div内容持有者是否因调用generate_cash_flow_stmt access而填充了表。虽然我在浏览器中看到了正在显示的表,但“View Source”操作显示了一个空白的div标签。怎么回事?

EN

回答 2

Stack Overflow用户

发布于 2009-04-06 01:10:42

显示空白div的View Source是预期的。AJAX调用会更新dom,但不会更改原始源。您可以使用Firebug最好地查看DOM。

至于测试:xhr :post调用不会触发Ajax.Updater,因此实际上不会更新页面div。( Ajax.Updater是生成 xhr调用的内容。通过在测试中手动启动调用,不会发生此类事件。)我也不相信功能测试真的会跟踪和更新DOM或执行javascript。

要通过测试,您应该只生成xhr请求(不要执行get :getDateRangeForCashFlowStmt),然后确认它返回了适当的部分。由于Rails & Prototype已经过了良好的测试,您应该能够相信form_remote_tagAjax.Updater将完成它们应该做的事情,并构建您的最终页面。

票数 1
EN

Stack Overflow用户

发布于 2009-04-06 07:50:37

你不想在你的功能测试中测试javascript。功能测试根本不包括javascript。

您可以使用Selenium之类的东西来测试您的javascript。Selenium基本上是尝试在浏览器中执行操作的测试。众所周知,浏览器对javascript的支持比Rails的功能测试要好得多。)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/719321

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档