我正在为正在学习的网络应用开发一个登录/注销功能。
在这一周中,我无法通过以下rspec测试:
describe "sucessfull log in" do
let(:user) {FactoryGirl.create(:user)}
before do
visit signin_path
fill_in "Email", with: user.email.upcase
fill_in "Password", with: user.password
click_button 'Sign in'
end
it {should have_title(user.name)}
it {should have_link('Account')}
it {should have_link('Profile', href: user_path(user))}
it {should have_link('Sign out', href: signout_path)}
end
然后昨天再次重新编写此代码,但忘记添加.upcase
函数。我只留下.upcase.email
。突然,测试通过了。
好的,我是新手开发者......所以更开心的是什么?为什么upcase函数没有让rspec成功登录?
提前感谢!
答案 0 :(得分:2)
为什么要提升电子邮件?如果.reverse
失败,你会同样感到惊讶吗?您正在更改电子邮件地址。
EXAMPLE@EMAIL.COM
与example@email.com
不同。它可能与您的应用程序等效,但您需要让应用程序知道。
您使用的是devise吗?如果是这样,config/devise.rb
文件将具有:
# Configure which authentication keys should be case-insensitive.
# These keys will be downcased upon creating or modifying a user and when used
# to authenticate or find a user. Default is :email.
config.case_insensitive_keys = [ :email ]
哪个应该使你正在做的工作。如果你没有使用它,你使用的任何框架都可能有类似的选择,如果你自己这样做,你需要自己处理它。