我试图了解清单 6.18(rails 3.2)中的唯一性约束测试。
describe "when email address is already taken" do
...
before do
user_with_same_email = @user.dup
user_with_same_email.save
end
it { should_not be_valid }
end
“这里的方法是创建一个与@user 具有相同电子邮件地址的用户,我们使用@user.dup 完成此操作,它会创建一个具有相同属性的重复用户。由于我们随后保存了该用户,因此原始@user 有一个数据库中已经存在的电子邮件地址,因此应该是无效的。”
我不清楚的部分是第一个用户在哪里/何时保存到数据库?即没有调用user.save。汽车魔术在哪里?
谢谢,
K A