проверка наличия элементов формы через rspec на ruby ​​на рельсах - PullRequest
0 голосов
/ 20 мая 2011

Привет всем, у меня проблемы с проверкой присутствия элементов формы на моем ruby ​​на представлении рельсов.Я использую rspec и have_selector для проверки.

Вот мой тестовый код:

it "should always have like button for root entity" do
  get :index
  @entities[0..3].each do |entity|
    response.should have_selector("form", 
      :method => "post", :action => "like/#{entity[:id]}") do |form|
        form.should have_selector("input", :value => "Like")
    end
  end
end

Вот вывод моего представления для конкретной сущности:

    <th>
      <form method="post" action="/like/1"  class="button_to">
        <div>
          <input type="submit" value="Like" /><input name="authenticity_token" type="hidden" value="WEJPdFzphPFz+ld6BO8c/sMlhdfm+2Trp+3n0J8H5Cs=" />
        </div>
      </form>
    </th>

Здесьмоя ошибка rspec:

1) EntitiesController GET Существуют «индексные» объекты для неподписанных пользователей, всегда должна быть кнопка «Мне нравится» для корневого объекта Failure / Error: form.should have_selector («input»,: value => "Like") ожидается, что следующий вывод будет содержать тег .

Если я закомментирую строку "form.should have_selector (" input ",: value => "Like") ", таким образом, тестовый код:

it "should always have like button for root entity" do
  get :index
  @entities[0..3].each do |entity|
    response.should have_selector("form", 
      :method => "post", :action => "like/#{entity[:id]}") do |form|
        #form.should have_selector("input", :value => "Like")
    end
  end
end

Моя ошибка rspec:

1) EntitiesController GET сущности 'index' существуют для не-у вошедших в систему пользователей всегда должна быть кнопка «Мне нравится» для корневого объекта. Ошибка / ошибка: response.should have_selector («form», ожидаемый следующий вывод будет содержать тег :

(только релевантная часть - c / ped)

Кажется, я сталкиваюсь с большими проблемами с have_selector, когда дело касается элементов формы.Есть ли лучшая альтернатива или я упускаю что-то очевидное?

Спасибо!

1 Ответ

0 голосов
/ 20 мая 2011

Действие вашей формы:

action="/like/1"

но вы ищете

action="like/1"

т.е. вам не хватает косой черты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...