Тестирование вложенного представления Ruby on Rails с помощью Cucumber - PullRequest
0 голосов
/ 18 октября 2011

Я только начал использовать Cucumber и не уверен, как проверить часть, которая у меня есть в представлении.

Вот моя особенность
огурец: posting.feature

Scenario: After having created job posting
  Given I am authenticated as "administrator"
  Given I am on the new posting page
  When I press "Create Posting"
  Then I should see "Back to list of all postings"


(Это страница, на которой я сейчас нахожусь)
Мой новый.html.haml

= link_to 'Logout', logged_out_url(@user)
%h1 New posting
= render 'form'
%br/
= link_to 'Cancel', postings_path


(Это представление, которое загружается в new.html.haml, чью кнопку «Создать публикацию» я бы хотел проверить)
_form.html.haml

= form_for(@postings) do |posting_builder|
    - if @postings.errors.any?
       #error_explanation
         %h2
            = pluralize(@postings.errors.count, "error")
            prohibited this posting from being saved:
         %ul
            - @postings.errors.full_messages.each do |msg|
            %li= msg

.field
   %b= posting_builder.label :title
   %br/
   = posting_builder.text_field :title
.field
   %b= posting_builder.label :description
   %br/
   = posting_builder.text_field :description
.field
   %b= posting_builder.label :requirements
   %br/
   = posting_builder.text_field :requirements
.field
   %b= posting_builder.label :location
   %br/
   = posting_builder.text_field :location
.field
   %b= posting_builder.label :Admin
   %br/
   = select("posting", "user_id", User.order('last_name ASC').collect {|u| [u.fullname, u.id]})

%br/
%br/

/ Submit
.actions
= posting_builder.submit


Есть ли какие-либо предложения относительно того, как мне следует заняться этим, или ресурсов / примеров, которые будут иметь отношение к моему вопросу?

1 Ответ

2 голосов
/ 18 октября 2011

Вам не нужно пытаться тестировать частичное отдельно. Cucumber не видит партиалы отдельно от главной страницы, он видит полностью визуализированную страницу (включая все частичное содержимое). Так что, если вы делаете And I should see [the text from the partial], то все в порядке.

Если это не работает, и вы думаете, что это должно, то прямо перед шагом And I should see... добавьте шаг, который говорит And show me the page, и он откроет ваш браузер по умолчанию и покажет вам, что видит Cucumber. Это может помочь вам выяснить, на какой странице вы находитесь на самом деле, и если она не соответствует ожидаемой.

ПРИМЕЧАНИЕ. Когда вы используете And show me the page, иногда вы получаете урезанную (без форматирования, без .CSS) версию страницы, поэтому не беспокойтесь, если она не похожа на страницу вы обычно видите при просмотре через браузер. Важно то, что он содержит HTML, метки, имена, идентификаторы элементов и т. Д.

...