Devise 测试设备时密码无效
我试着运行测试Devise 测试设备时密码无效,devise,capybara,factory-bot,Devise,Capybara,Factory Bot,我试着运行测试 describe "CreateFolders" do describe "GET /projects" do it "new folder", :js => true do @user = FactoryGirl.create(:user) visit projects_path fill_in('user_Login', :with => @user.email) fill_in('user_passwo
describe "CreateFolders" do
describe "GET /projects" do
it "new folder", :js => true do
@user = FactoryGirl.create(:user)
visit projects_path
fill_in('user_Login', :with => @user.email)
fill_in('user_password', :with => @user.password)
click_button('Sign in')
page.should have_content('Logged in')
end
end
我明白了
在rails中,有三个数据库集:开发数据库、测试数据库和生产数据库, 您可能正在开发数据库中创建新用户,该用户应该在测试数据库中创建,因为在您进行测试时,将使用测试数据库 确保在测试数据库中创建了新用户 如果您只需要访问需要身份验证的页面,而不需要测试登录表单,那么在Capybara中有一种简单的方法:
我希望这会有帮助 在rails中,有三个数据库集:开发数据库、测试数据库和生产数据库, 您可能正在开发数据库中创建新用户,该用户应该在测试数据库中创建,因为在您进行测试时,将使用测试数据库 确保在测试数据库中创建了新用户 如果您只需要访问需要身份验证的页面,而不需要测试登录表单,那么在Capybara中有一种简单的方法:
我希望这会有帮助 我假设您正在使用水豚进行测试。尝试将
fill_in
更改为标签名称,而不是字段名称。例如:
fill_in "Login", :with => @user.email
fill_in "Password", :with => @user.password
对于你的应用程序来说,这些可能是不同的——只需替换你的字段标签实际被调用的内容(当你转到projects\u路径时在屏幕上看到的内容)。另外,不需要括号。我假设您正在使用水豚进行测试。尝试将
fill_in
更改为标签名称,而不是字段名称。例如:
fill_in "Login", :with => @user.email
fill_in "Password", :with => @user.password
对于你的应用程序来说,这些可能是不同的——只需替换你的字段标签实际被调用的内容(当你转到projects\u路径时在屏幕上看到的内容)。此外,不需要括号。您应该使用cucumber来实现此目标
@javascript
Scenario Outline: Show or not dasboard
Given the following user records
| email | password | login |
| admin@mail.com | password | admin |
When I am on the home page
And I fill in "user_email" with "<login>"
And I fill in "user_password" with "<password>"
And I press "Sign in"
Then I should <flash>
Examples:
| login | password | flash |
| admin@mail.com | password | see "Signed in successfully." |
@javascript
场景大纲:显示或不显示dasboard
给定以下用户记录
|电子邮件|密码|登录|
| admin@mail.com|密码|管理员|
当我在主页上时
我在“用户电子邮件”中填写“”
我用“”填写“用户密码”
然后我按“登录”
那我应该
示例:
|登录|密码|闪存|
| admin@mail.com|密码|请参阅“成功登录”|
您应该使用cucumber来实现此目标
@javascript
Scenario Outline: Show or not dasboard
Given the following user records
| email | password | login |
| admin@mail.com | password | admin |
When I am on the home page
And I fill in "user_email" with "<login>"
And I fill in "user_password" with "<password>"
And I press "Sign in"
Then I should <flash>
Examples:
| login | password | flash |
| admin@mail.com | password | see "Signed in successfully." |
@javascript
场景大纲:显示或不显示dasboard
给定以下用户记录
|电子邮件|密码|登录|
| admin@mail.com|密码|管理员|
当我在主页上时
我在“用户电子邮件”中填写“”
我用“”填写“用户密码”
然后我按“登录”
那我应该
示例:
|登录|密码|闪存|
| admin@mail.com|密码|请参阅“成功登录”|
当我打电话给用户时,您可以发布:user的工厂定义吗?
您可以发布:user的工厂定义吗。谢谢你的链接。但是Mysql2::错误:超过了锁等待超时;尝试重新启动事务:更新
users'SETlast\u sign\u at
='2012-01-17 13:52:11'、current\u sign\u at
='2012-01-17 13:52:11'、last\u sign\u in\u ip
='127.0.0.1'、current\u sign\u sign\u-in\u-in\u-ip
='127.0.0.0.1'、,更新时间:
='2012-01-17 13:52:11',其中用户
id
=1`当我使用user=FactoryGirl时。当我调用user时创建(:user)登录名为(user,:scope=>:user)
。在工厂之后,我从数据库获取记录。谢谢你的链接。但是Mysql2::错误:超过了锁等待超时;尝试重新启动事务:更新
users'SETlast\u sign\u at
='2012-01-17 13:52:11'、current\u sign\u at
='2012-01-17 13:52:11'、last\u sign\u in\u ip
='127.0.0.1'、current\u sign\u sign\u-in\u-in\u-ip
='127.0.0.0.1'、,updated_在
=“2012-01-17 13:52:11”当我使用user=FactoryGirl.create(:user)登录为(user,:scope=>:user)
cucumber与任何事情都有什么关系。在rspec中,你可以做得很好。cucumber和任何东西都有什么关系。在rspec中,您可以做得很好。