好了,你還在使用cucumber-rails
寶石附帶默認安裝的訓練車輪的舊版本。閱讀這篇文章AslakHellesøy"The training wheels came off"。
該帖子的要點是,使用web_steps.rb
,雖然它已成爲年「標準」現在是非常錯誤的,我們應該爲此感到難過。
黃瓜的目的是用它做可讀/理解爲特色所有的人。
寫這樣的情況是漫長而無聊:
And I am on the login page
When I fill in "email" with "[email protected]"
And I fill in "password" with "123"
And I press "Login"
Then I should see "Account Activity"
要真正地要測試的是,你應該能夠登錄,之後看到的東西做被記錄在什麼不管那是什麼什麼是不應該在場景寫入。
因此理想情況下,你Scenario
(更令人興奮的時尚)是這樣的:
When I login successfully
Then I should see that I am logged in
然後做跑腿的任務轉移到一些新的臺階定義。這兩個步驟不會自動爲您定義,如web_steps.rb
那樣,而是需要將它們寫入feature/step_definitions
內的文件中。你所謂的文件是你的,但它會包含類似這樣的內容:
When /I login successfully/ do
visit root_path
click_link "Login"
fill_in "Email", :with => "[email protected]"
fill_in "Password", :with => "password"
end
Then /^I should see I am logged in$/ do
page.should have_content("Account Activity")
end
沒有更過分web_steps.rb
文件和清潔的步驟定義。究竟是什麼黃瓜應該是。
請給我們展示真實的例子。 –
@RyanBigg更新了一個例子。 – codecompleting
這是不是對黃瓜的目的是寫一個可測試的故事,甚至非技術人員非常可讀的故事。如果我們開始混合變量,則可讀性會略微偏離窗口。當然也可以使用Rspec和水豚和硒。 – Rasmus