0

我正在为学习而构建的网络应用程序上开发登录/注销功能。

在这一周内,我无法通过以下 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登录成功?

提前致谢!

4

1 回答 1

2

你为什么要升级电子邮件?如果.reverse它失败了,你会同样感到惊讶吗?您正在更改电子邮件地址。

EXAMPLE@EMAIL.COMexample@email.com严格来说,不等于。它可能与您的应用程序等效,但您需要让应用程序知道这一点。

你在用设计吗?如果是这样,该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 ]

这应该使你正在做的工作。如果你不使用它,你使用的任何框架都可能有类似的选项,如果你自己做,你需要自己处理。

于 2013-08-23T13:39:10.077 回答