计算实例数是找出某些是否已被删除的一种方法:
it "should delete the mutual_friendship" do
@friendship_1.delete_mutual_friendship!
UserFriendship.count.should == 0
end
但是,是否可以测试某条记录是否已被删除?就我而言,@ friendship_1?我可以测试数据库中不再存在@ friendship_1的属性吗?
答案 0 :(得分:1)
使用destroyed?
:
it "should delete the mutual_friendship" do
@friendship_1.delete_mutual_friendship!
@friendship_1.should be_destroyed
# @friendship_2.should be_destroyed
end
文档:destroyed
答案 1 :(得分:0)
也许你可以reload
记录并测试它会引发错误:
it "should delete the mutual_friendship" do
@friendship_1.delete_mutual_friendship!
@friendship_1.reload.should raise_error
end
答案 2 :(得分:0)
ActiveRecord#exists? method允许您测试数据库中是否存在记录。您可以测试您想要的任何条件,但假设对id的测试已经足够,您可以使用:
it "should delete the mutual_friendship" do
@friendship_1.delete_mutual_friendship!
expect(UserFriendship.exists?(@friendship.id)).to be_false
end
顺便说一句,我为此方法找到的所有文档都表明它返回true
或false
,但它确实应该说truthy
或'falsy`,每个{ {3}}由于我无法弄清楚的原因,它没有反映在主分支中。