Rails功能测试assert_select javascript respond_to

时间:2010-03-11 15:33:40

标签: javascript ruby-on-rails functional-testing

我目前正在尝试为充电表单编写功能测试,该表单通过AJAX(jQuery)加载到页面上。它从charge_form操作加载表单,该操作返回consult_form.js.erb视图。

这一切都有效,但我的测试遇到了麻烦。

在功能中我可以去动作,但是我不能使用assert_select来查找一个元素并验证表格实际上就在那里。

错误: 1) Failure: test_should_create_new_consult(ConsultsControllerTest) [/test/functional/consults_controller_test.rb:8]: Expected at least 1 element matching "h4", found 0. <false> is not true.

这是观点。 consult_form.js.erb:

<div id="charging_form">
 <h4>Charging form</h4>
 <div class="left" id="charge_selection">
  <%= select_tag("select_category", options_from_collection_for_select(@categories, :id, :name)) %><br/>
...

consults_controller_test.rb:

require 'test_helper'

class ConsultsControllerTest < ActionController::TestCase
 def test_should_create_new_consult
  get_with_user :charge_form, :animal_id => animals(:one), :id => consults(:one), :format => 'js'
  assert_response :success

  assert_select 'h4', "Charging form" #can't find h4
 end
end

将assert_select与html以外的类型一起使用是否有问题?

感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

所以,问题是我应该将.js中的javascript和HTML放在.html中:P有点明显。

我把html放入javascript文件中。我通过简单地将charge_form.js.erb重命名为charge_form.html.erb来修复它。