Eri*_* M. 11 ruby-on-rails amazon-s3 paperclip stubbing
我正在使用Paperclip和S3进行图像上传,并试图从我的测试套件中删除对S3的调用.我找到了提到做的思想机器人帖子
a.cover { a.paperclip_fixture('album', 'cover', 'png') }
Run Code Online (Sandbox Code Playgroud)
但这给了我一个"错误的参数数量(4个2)"错误.我尝试将上面的参数切换到一个数组,这会删除原始错误,但会出现错误,说"属性已定义:paperclip_fixture".
有没有人能够使这个工作?另外,我最好将本地文件系统用于开发环境.是否有捷径可寻?
好的,我已经找到了基本问题.这是(我相信),因为伊丽莎说,因为我没有使用shoulda
(我正在使用rspec 2.6.0
和factory_girl 2.1.2
).
这对我Profile
有用(具有附件的类在哪里):
Profile.any_instance.stub(:save_attached_files).and_return(true)
@profile = Factory(:profile)
Run Code Online (Sandbox Code Playgroud)
目前我只是在我before
的rspec
例子中使用了这个权利.这可能是一个更好的地方.
使用最新的paperclip(来自github master分支)和aws-sdk版本2,我通过以下配置解决了我的问题:
require "aws-sdk"
Aws.config[:s3] = {stub_responses: true}
Run Code Online (Sandbox Code Playgroud)
有关更多信息,请查看amazon sdk
将它放在我的'spec/rails_helper.rb'文件中对我有用:
require 'aws'
AWS.stub!
AWS.config(:access_key_id => "TESTKEY", :secret_access_key => "TESTSECRET")
Run Code Online (Sandbox Code Playgroud)
你用的是shoulda吗?如果您不使用应该,您正在使用的 paperclip_fixture 方法可能来自其他地方,因此行为不同。
可能相关:https ://github.com/thoughtbot/paperclip/blob/master/shoulda_macros/paperclip.rb