2011-04-12 114 views
1

我正在使用之前的过滤器:authenticate_user!在我的网页上。我有黄瓜测试,测试这些网页上的行为,他们现在失败,因为我没有一个经过验证的用户,什么是使这些测试通过最简单的方法?每次都必须创建一个用户并登录他?有没有办法?我测试过该页面无法访问,如果用户没有登录,我不想有这个每次我添加了一个测试用Rails 3页测试失败,因为用户未经过身份验证

测试,设计1.2,黄瓜

回答

2

你应该编写一套可重复使用的黄瓜步骤来记录你的用户进行测试。这是Devise明确建议在他们的readme中测试用户已登录并具有适当会话的方式。

您可以创建可重用的黄瓜的步骤,所以你只需要编写的步骤在一次登录用户,那么你可以这样做:

Given a valid user is logged in 
When ... 

有使用黄瓜这样网上很多详细信息,但如果你想要一个简单的例子,我在this question的答案中找到了这个例子。

+0

@ Brett Bender - 你会创建一个新用户并登录他吗?给定一个有效的用户登录步骤? – 2011-04-13 08:03:00

+0

Waht我试图避免一遍又一遍地创建用户。理想情况下,我想创建一次,然后在测试中使用相同的用户,黄瓜有可能吗? – 2011-04-13 08:33:42

+0

您可能希望标记需要用户存在于数据库中的测试,并使用before hook确保在测试运行之前创建用户。查看关于钩子的wiki页面:https://github.com/aslakhellesoy/cucumber/wiki/Hooks – 2011-04-13 15:05:13