rik*_*mbo 1 rspec ruby-on-rails destroy factory-bot
我想创建一个对象,然后在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
Run Code Online (Sandbox Code Playgroud)
返回错误:
Failure/Error: User.destroy(user.id)
NoMethodError:
undefined method `id' for true:TrueClass
Run Code Online (Sandbox Code Playgroud)
小智 5
问题不在于您无法在rspec测试中删除用户 - 而是您的user对象未获得您想要的任务:
FactoryGirl.create(:user, id: 1, email: "g@g.com").should be_valid
Run Code Online (Sandbox Code Playgroud)
计算结果为true,并分配给user.然后,当你试图调用时user.id,它会查找id属性true并被卡住.
您可以将该特定行拆分为:
FactoryGirl.build(:user, id: 1, email: "g@g.com").should be_valid
user = FactoryGirl.create(:user, id: 1, email: "g@g.com")
Run Code Online (Sandbox Code Playgroud)
或者不担心本地用户变量,只是根据电子邮件地址删除,即
User.destroy((User.find_by email: "g@g.com").id)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2934 次 |
| 最近记录: |