2012-03-19 112 views
0

我想写了,看起来像一个场景:每次使用Cucumber&Devise Gems测试登录用户时,是否必须登录?

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的宝石。我不知道如何直接登录用户,因为用户会话,cookie等必须设置

回答

1

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

此步骤定义可以将cookie放入cookie jar以供后续使用。

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

相关问题