Obr*_*ios 4 rspec ruby-on-rails
我想测试一下ENV键值对我的代码的影响.我正在通过使用来解决这个问题
allow(ENV).to receive(:[]).with('ADWORDS_RUN').and_return('No')
Run Code Online (Sandbox Code Playgroud)
这是有效的,直到我更改目标代码以包括访问另一个ENV密钥.目标代码现在包括以下内容
def not_local_machine?
!ENV['LOCAL_MACHINE']
end
Run Code Online (Sandbox Code Playgroud)
现在测试在上述函数中失败并显示错误消息
Failure/Error: get 'home'
ENV received :[] with unexpected arguments
expected: ("ADWORDS_RUN")
got: ("LOCAL_MACHINE")
Please stub a default value first if message might be received with other args as well.
Run Code Online (Sandbox Code Playgroud)
看来我目前的存根方法是擦除其他ENV键.如何存根ENV键以避免此问题?
您可以使用
stub_const 'ENV', ENV.to_h.merge('ADWORDS_RUN' => 'No')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
714 次 |
| 最近记录: |