如果定義了某些環境變量,我有條件地使用Amazon-s3作爲Paperclip的存儲。我想用Rspec來測試這個。基於環境變量的Rspec測試配置
Application.rb
unless ENV['aws_secret_access_key'].nil? && ENV['aws_access_key_id'].nil? && ENV['aws_bucket'].nil?
config.paperclip_defaults = {
storage: :s3,
s3_credentials: {
bucket: ENV['aws_bucket'],
access_key_id: ENV['aws_access_key_id'],
secret_access_key: ENV['aws_secret_access_key']
}
}
end
我已經嘗試了幾件事情,沒有運氣。任何有關如何進行測試的見解都會很棒。謝謝。
編輯:
要展開什麼我到目前爲止嘗試,我試圖僞造ENV變量並重新加載應用程序。這不起作用,因爲一旦加載應用程序,我無法找到一種方法來更改ENV變量。
我希望做的是測試如果應用程序被賦予上面的ENV變量(即某些用戶可能擁有它們,有些可能不具備)回形針配置爲S3。
你真的想要檢查文件是否使它成爲S3或只是'ENV'變量存在和設置?如果你想檢查'ENV'變量,你可以簡單地檢查那些'nil'。如果你想檢查'S3',你應該可以在'S3'中放入一個虛擬文件並檢查返回的數據。 – CWitty
我想要做的是測試應用程序配置回形針使用S3,如果ENV變量定義。 我採取的方法是假冒ENV變量,然後嘗試初始化應用程序,並檢查回形針配置是S3。 我遇到的問題是一旦應用程序初始化,您無法重新運行該代碼段。 – ncatoni
如果有些用戶擁有他們,有些則沒有,那麼您是不是想要通過測試,以便他們獲得憑證?似乎應該從更高的層面看待某些事物。 – CWitty