#ruby-on-rails #cucumber
#ruby-on-rails #cucumber
Вопрос:
Я только начал использовать Cucumber и не уверен, как протестировать часть, которую я имею в представлении.
Вот моя функция
cucumber: публикация.особенность
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:
Вам не нужно пытаться тестировать partial отдельно. 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, метки, имена, идентификаторы элементов и т. Д.