由于错误的电子邮件或密码,测试失败,即使我创建了一个新帐户并立即使用
继承文件
规格/工厂/ admins.rb
FactoryGirl.define do
factory :admin do
email 'admin@example.com'
password ('a'..'z').to_a.shuffle.join
end
end
规格/特征/ sign_in_spec.rb
require 'rails_helper'
describe 'Login', js: true do
admin = FactoryGirl.create(:admin)
it 'I can sign in' do
visit '/admins/sign_in'
fill_in 'Email', :with => admin.email
fill_in 'Password', :with => admin.password
click_button 'Log in'
expect(page).to have_content('Signed in successfully')
end
end
答案 0 :(得分:0)
在阻止之前保持bkgd
,然后尝试。
curses.init_pair(1, 2, 6)
scr.bkgd(curses.ACS_CKBOARD, curses.color_pair(1))
scr.erase()
scr.bkgdset(' ', curses.color_pair(1))
scr.addstr(10, 0, 'Hello, world!', curses.color_pair(0))
现在将此admin = FactoryGirl.create(:admin)
用于您的测试块。
答案 1 :(得分:0)
Hasanuzzaman的解决方案是正确的,但您可能会从解释原因中受益。
当您的规范被读入时,它所做的只是定义测试。它们实际上并不是立即运行的。通过使admin = FactoryGirl.create(:admin)
行在定义测试时执行,而不是在测试运行时执行。这意味着它已经在测试开始时清除数据库之前运行,因此记录实际上并不存在于测试中。通过将其移动到之前的块,它实际上不会运行,直到测试实际运行。
describe 'Login', js: true do
before do
@admin = FactoryGirl.create(:admin)
end
it 'I can sign in' do
visit '/admins/sign_in'
fill_in 'Email', :with => @admin.email
fill_in 'Password', :with => @admin.password
click_button 'Log in'
expect(page).to have_content('Signed in successfully')
end
end