Ruby on rails 从rspec进行测试时,env为空
我有一个使用env的控制器: a=env['some_key'] 然后,当使用rspec进行测试时,测试失败,因为env为空。 我尝试将其更改为: a=request.env['some_key'] 但它仍然失败了。我还试图将其存根: 允许(环境)接收(:[]),带有(“某些密钥”)和返回(“xxxx”) 也失败了 我在谷歌上搜索到一个帖子:Ruby on rails 从rspec进行测试时,env为空,ruby-on-rails,rspec,Ruby On Rails,Rspec,我有一个使用env的控制器: a=env['some_key'] 然后,当使用rspec进行测试时,测试失败,因为env为空。 我尝试将其更改为: a=request.env['some_key'] 但它仍然失败了。我还试图将其存根: 允许(环境)接收(:[]),带有(“某些密钥”)和返回(“xxxx”) 也失败了 我在谷歌上搜索到一个帖子: 在那篇文章中,它没有说如何测试这种情况。有没有一种有效的方法来测试这一点?您正在寻找的是存根常量,而不是允许(…) 您能否共享控制器的代码片段,其中声明
在那篇文章中,它没有说如何测试这种情况。有没有一种有效的方法来测试这一点?您正在寻找的是
存根常量,而不是允许(…)
您能否共享控制器的代码片段,其中声明了env、rspec和故障?env
请求。env
和env
是不同的东西。具体的预期用例是什么?
class Test
attr_reader :env
def initialize
@env = ENV['SOME_KEY']
end
end
describe Test do
subject(:test) { Test.new }
before { stub_const('ENV', {'SOME_KEY' => 'mock'}) }
it 'displays the correct environment variable' do
expect(test.env).to eq('mock')
end
end