我如何格式化我的背景,以便注册并记录用户,我可以重复使用它?

时间:2011-06-06 17:38:26

标签: ruby-on-rails rspec cucumber

我想在我的黄瓜功能中创建一个后台步骤,所以我只注册一个新用户,并将用户登录,然后我就可以为登录的用户运行我的场景。

我想在许多其他功能和场景中重复使用它。

任何提示?

我该怎么说呢?

Given I am a user who registers
And then logs in

喜欢那个?

3 个答案:

答案 0 :(得分:2)

我通常把它写成......

Given I am logged in as a "<RoleTitle>"

RoleTitle当然可以是别的。

这一步看起来像

Given /^I am logged in as a "([^"]*)"$/ do |role|
  # either run actual steps to register
  # OR
  # use pickle/factories to setup user accounts, if
  # bypassing the registration forms are possible

  # Once created I will (try to) create a pickle reference
  find_model! %{user: "#{role}"}, {:id => User.last.id} # change approach if you need multiple users

  # then log the user in
end

答案 1 :(得分:0)

实际注册对您的测试很重要吗?或者只是用户的存在?

在我们的测试中,我们有:

When I am logged in as an administrator #or whatever type of user you want

如果尚未存在,则此步骤将创建一个管理员。

答案 2 :(得分:0)

如果您不关心用户的电子邮件地址或其他属性,请使用以下内容:

Given I am signed in

如果您需要设置一些数据,请使用Factory Girl并使用以下内容:

Given the following user exists:
  | email             | name       |
  | mark@example.com  | Mark Twain |
And I sign in as "mark@example.com"

有关Factory Girl步骤定义的信息:

http://robots.thoughtbot.com/post/284805810/gimme-three-steps

编写认证步骤定义的想法:

https://github.com/thoughtbot/clearance/blob/master/features/step_definitions/engine/clearance_steps.rb