說出模式是爲註冊簡報:
it 'valid modal entry', js: true do
prev_count = NewsletterSubscribers.all.count
visit_page
click_modal_thing
fill_in "Email", with: "[email protected]"
click_button "Submit"
expect(page).to have_content "Successfully signed up for newsletter"
expect(NewsletterSubscribers.all.count).to eq prev_count + 1
end
it 'invalid modal entry', js: true do
prev_count = NewsletterSubscribers.all.count
visit_page
click_modal_thing
click_button "Submit"
expect(page).to have_content "Email can't be blank"
expect(NewsletterSubscribers.all.count).to eq prev_count
end
所以再根據我的意見,我離開你昨天晚上,我們清楚地看到這段代碼有一些重複,我們重構塊之前使用:
before(:each) do
@prev_count = NewsletterSubscribers.all.count
visit_page
click_modal_thing
end
it 'valid modal entry', js: true do
fill_in "Email", with: "[email protected]"
click_button "Submit"
expect(page).to have_content "Successfully signed up for newsletter"
expect(NewsletterSubscribers.all.count).to eq @prev_count + 1
end
it "invalid modal entry", js: true do
click_button "Submit"
expect(page).to have_content "Email can't be blank"
expect(NewsletterSubscribers.all.count).to eq @prev_count
end
你今天的單獨測試看起來像什麼?寫一個塊之前是一個抽象的術語,讓你的測試變得乾爽。除非在代碼中看到重複內容,否則不需要編寫這些代碼,因此可以根據需要使用盡可能多的代碼進行測試,然後重構。 – Anthony 2014-09-19 01:40:55
我沒有第二組測試,因爲......其中存在這個問題。第一套是手動的,因爲一些Facebook整合有趣的業務,我仍然需要整理 – james 2014-09-19 04:35:17