好了,你还在使用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