oli*_*art 1 rspec ruby-on-rails rspec-rails
既然 Rails 附带了凭证/秘密文件,我似乎无法使用 RSpec 存根/覆盖秘密。
# credentials.yml.enc
my_token: 111
Run Code Online (Sandbox Code Playgroud)
使用环境变量,我们曾经这样做过
allow(ENV).to receive(:[]).with('my_token').and_return('')
Run Code Online (Sandbox Code Playgroud)
所以我期望能够应用相同的逻辑
allow(Rails.application.credentials).to receive(:my_token).and_return('')
Run Code Online (Sandbox Code Playgroud)
但它不会覆盖 Rails 的秘密。任何想法?谢谢
应该是直接的,如下所述https://github.com/rspec/rspec-rails/issues/2099#issuecomment-472965256
describe 'Credentials' do
it 'stubs credentials' do
allow(Rails.application.credentials).to receive(:my_token).and_return('123')
expect(Rails.application.credentials.my_token).to eq('123')
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2512 次 |
| 最近记录: |