我想创建一个对象,然后在rspec测试期间将其删除......这可能吗?
此代码:
describe User do
it "should be invalid if email is not unique" do
user = FactoryGirl.create(:user, id: 1, email: "g@g.com").should be_valid
FactoryGirl.build(:user, email: "g@g.com").should_not be_valid
User.destroy(user.id)
FactoryGirl.build(:user, email: "g@g.com").should be_valid
end
end
返回错误:
Failure/Error: User.destroy(user.id)
NoMethodError:
undefined method `id' for true:TrueClass
答案 0 :(得分:5)
问题不在于您无法在rspec测试中删除用户 - 而是您的user
对象未获得您想要的任务:
FactoryGirl.create(:user, id: 1, email: "g@g.com").should be_valid
评估为true,并分配给user
。然后,当您尝试拨打user.id
时,它会查找id
的{{1}}属性并被卡住。
您可以将该特定行拆分为:
true
或者不担心本地用户变量,只是根据电子邮件地址删除,即
FactoryGirl.build(:user, id: 1, email: "g@g.com").should be_valid
user = FactoryGirl.create(:user, id: 1, email: "g@g.com")