每次用黄瓜和黄瓜测试登录用户时是否必须登录?设计宝石?

时间:2012-03-19 10:08:33

标签: testing login devise cucumber bdd

我想写一个类似于:

的场景
Given I am logged in
And I am on my profile page
Then I see my name

对于“鉴于我已登录” - 我是否需要编写如下内容:

  When I go to the log in page
  And I fill in "user_username" with "test" 
  And I fill in "user_password" with "invalid password"
  And I press "Sign in"

问题是:每次测试登录用户功能时,测试是否必须通过登录方案?

编辑: 请注意,我正在使用Devise gem。我不确定如何直接登录用户,因为必须设置用户会话,cookie等

1 个答案:

答案 0 :(得分:1)

我会写一个步骤定义来处理登录而不是场景。

然后,此步骤定义可以将cookie放入cookie罐中供以后使用。

如果您将cookiejars存储在以测试用户为中心的hashmap中,那么该方法可以足够智能,只有在needen时才能登录并重新使用会话(如果仍然可用)。这可以在测试中节省大量时间,但代价是没有完全独立的测试,因为现在它们通过服务器上的会话数据进行耦合。在再次登录之前,可以通过注销来清除会话。