Функциональный тест Rails assert_select javascript response_to - PullRequest
1 голос
/ 11 марта 2010

В настоящее время я пытаюсь написать функциональные тесты для формы оплаты, которая загружается на страницу через 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 голосов
/ 14 марта 2010

Итак, проблема заключалась в том, что я должен поместить javascript в .js и HTML в .html: P Вроде бы очевидно.

Я помещал html в файл javascript. Я исправил это, просто переименовав charge_form.js.erb в charge_form.html.erb.

...