Rails、Paperclip、Amazon S3 和 Rspec 测试 - user.avatar 对象未设置为 ni



所以我有一个回形针,Amazon S3的设置,我正在使用RSPEC进行测试,试图删除User.avatar对象。

我的删除方法是:

@user.avatar.clear
@user.avatar.destroy
@user.avatar = nil
@user.save

是的,我意识到我基本上有 3 种删除方法。但这是我的观点 - 当我跑步时

@user.avatar

它仍然返回

=> #<Paperclip::Attachment ...@name=

我正在尝试编写一个测试,在其中删除附件,并且我的预期块期望@user.avatar = nil。但是,它没有得到 = 到零。

我应该如何测试头像的删除?

您可以使用Paperclip::Atachment#exists?方法

您可以像这样在测试上编写断言:

expect(user.avatar.exists?).to be(false)

正如@Manuel所说,您必须使用此代码删除avatar后使用expect(@user.avatar.exists?).to be(false)

@user.avatar = nil @user.save

调用@user.avatar时将始终返回回形针类的默认Hash,因此您必须通过特定方法检查可呈现性 如:Paperclip::Atachment#exists?@user.avatar.nil?@user.avatar.present?

希望对您有所帮助。

最新更新