我刚刚开始使用Cucumber,我不确定如何测试视图中的部分内容。
这是我的特色
黄瓜: posted.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"
(这是我目前所在的页面)
我的new.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
对于我应该如何处理与我的问题相关的资源/示例有什么建议吗?
答案 0 :(得分:2)
您不必尝试单独测试部分。 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,标签,名称,元素ID等。