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

时间:2017-06-21 19:06:47

标签: ruby-on-rails ruby-on-rails-4 amazon-s3 rspec paperclip

所以我有一个Paperclip,Amazon S3的设置,我正在测试RSPEC试图删除User.avatar对象。

我的删除方法是:

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

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

@user.avatar

它仍然会返回

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

我正在尝试编写一个测试,删除附件,我的expect块期望@ user.avatar = nil。然而,它没有得到=零。

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

2 个答案:

答案 0 :(得分:0)

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

您可以在测试中编写断言:

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

答案 1 :(得分:0)

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

@user.avatar = nil @user.save

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

希望您觉得这很有帮助。