Add Task
アプリの動作が適切に機能することを確認するための機能仕様を作成しています。コードをまったく編集せずに同じ仕様を複数回実行しましたが、仕様の一方または両方が失敗することがあります。
自分の仕様が不規則に動作する特定の何かがあるかどうか疑問に思っています (開発者が壊れやすい仕様について話すとき、これは何を意味するのでしょうか? 私はそう想像します...)。コードを明確にするためにコメントを追加しました。アドバイスをいただければ幸いです。ありがとう。
task_feature_spec_helper
include ApplicationHelper
def click_task
visit order_path(order.id)
click_link("Add Task")
end
def add_valid_task
click_task
within("#add_task") do
select 'foo1@example.com', from: 'Assignee'
fill_in 'Due at', {:with => '15/03/25'}
fill_in_html("task__textarea", {:with => task[:description]})
click_button "Save"
end
end
def add_empty_task
click_task
within("div#add_task") { click_button "Save" }
end
task_feature_spec には「spec_helper」が必要です
feature 'Create Task' do
let(:order) {create(:order)}
let(:task) {attributes_for(:task)} #using attributes for to prevent extra object
before(:each) {login_user} #initliaztion (user squence only goes up if the user is
#saved.)
scenario 'with valid description' , :js => :true do
add_valid_task
expect(page).to have_content('Task Created') #'Task Created' is a momentary JS notification
sleep 1 #this pause allows elements below to render
within("div#tasks-table") do
expect(page).to have_content('Due on 03/15/25')
expect(page).to have_content('Assigned to foo1@example.com')
expect(page).to have_content('Displayed on Ad Hoc')
end
end
scenario 'with invalid (empty) description' , :js => :true do
add_empty_task
sleep 1
expect(page).to have_content("can't be blank")
end
end