【问题标题】:Rails, Paperclip, Amazon S3, and Rspec testing - user.avatar object not being set to nilRails、Paperclip、Amazon S3 和 Rspec 测试 - user.avatar 对象未设置为 nil
【发布时间】:2017-11-24 20:16:53
【问题描述】:

所以我有一个使用 Paperclip、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。但是,它并没有将 = 变为零。

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

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

      正如@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?

      希望对您有所帮助。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-06-06
        • 2023-03-04
        • 2014-03-18
        • 2014-11-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多