如何通过设置配置在rspec中测试载波雾Google



我有以下配置,我想用ruby为它编写TC。我是ruby的新手,想了解如何将Fog的配置设置为指向mock,并在测试用例中使用它。

class TestUploader < CarrierWave::Uploader::Base
storage :fog
def fog_credentials
{
:provider => 'google',
:google_project =>'my project',
:google_json_key_location =>'myCredentialFile.json'
}
end

def fog_provider
'fog/google'
end
def fog_directory
'{#bucket-name}'
end
def store_dir
when :File
"#{file.getpath}/file"
when :audio
"#{file.getpath}/audio"
else
p " Invalid file "
end
end
end
class TestModel
mount_uploader :images, TestUploader
end

有人可以帮助我从配置编写和执行单元测试上它的几个例子。如有任何帮助,我将不胜感激。

从测试,我得到了以下示例代码使用谷歌云存储使用雾宝石:

require "fog/google"
# Uncomment the following line if you want to use Mock
#Fog.mock!
# Bucket name
bucket = "an-existing-bucket"
# Timestamp used as sample string
test = Time.now.utc.strftime("%Y%m%d%H%M%S")
connection = Fog::Storage.new({
:provider => "Google",
:google_project => "your-project",
:google_json_key_location => "path-to-key.json",
})
# Lists objects in a bucket
puts connection.list_objects(bucket)
#Creates new object
connection.put_object(bucket, test, test)
puts "Object #{test} was created."

它可以在生产环境中工作,但是使用mock模式失败,并出现以下错误:

`not_implemented': Contributions welcome! (Fog::Errors::MockNotImplemented)

它似乎没有按照文档中put_object方法定义的方式实现。

同样,在这个GitHub问题中也说:

关闭问题。1.0.0已经发布,我们不再支持json支持的对象。

<

凭证/h3>

正如Fog的文档中所示,要配置Google凭据,您必须按照以下方式配置它们:

connection = Fog::Storage.new({
:provider                         => 'Google',
:google_storage_access_key_id     => YOUR_SECRET_ACCESS_KEY_ID,
:google_storage_secret_access_key => YOUR_SECRET_ACCESS_KEY
})

模拟

在GitHub - Fog::Google文档中,也有一个最小配置将Fog与Carrierwave集成。

为了使用Cloud Storage模拟,可以使用以下行:

Fog.mock!
connection = Fog::Storage.new(config_hash)

提供商特定资源

在提供商文档部分,您可以找到指向特定于提供商的文档和示例的链接。

社区支持的提供商可以通过在适当的存储库上提交Github问题来获得帮助。

文档示例tbody><

相关内容

  • 没有找到相关文章

最新更新



  • All rights reserved © 2023 www.xiaobeizi.cn

  • 首页
提供商支持类型
谷歌文档fog-google-examples社区