我想写一个类似于:
的场景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等
答案 0 :(得分:1)
我会写一个步骤定义来处理登录而不是场景。
然后,此步骤定义可以将cookie放入cookie罐中供以后使用。
如果您将cookiejars存储在以测试用户为中心的hashmap中,那么该方法可以足够智能,只有在needen时才能登录并重新使用会话(如果仍然可用)。这可以在测试中节省大量时间,但代价是没有完全独立的测试,因为现在它们通过服务器上的会话数据进行耦合。在再次登录之前,可以通过注销来清除会话。