【发布时间】:2014-04-25 02:18:35
【问题描述】:
Mike Hartl 的书为Listing 6.17 提供了以下内容,用于测试拒绝重复电子邮件地址,不区分大小写。
对User.new 的调用创建了一个内存用户,但没有在任何地方调用@user.save 将其保存到数据库中。
运行测试,它正确拒绝了重复的地址。但我无法弄清楚它是如何工作的。只有user_with_same_email 保存到数据库而不是@user。那么有效性测试如何在没有保存@user 的情况下检测到重复项呢?
require 'spec_helper'
describe User do
before do
@user = User.new(name: "Example User", email: "user@example.com")
end
subject { @user }
.
.
.
describe "when email address is already taken" do
before do
user_with_same_email = @user.dup
user_with_same_email.email = @user.email.upcase
user_with_same_email.save
end
it { should_not be_valid }
end
end
【问题讨论】:
标签: ruby-on-rails railstutorial.org