我必须在运行测试用例时更改我的 rails 环境。
if Rails.env.production?
# Do something
else
# Do something else
end
我如何在测试用例中更改我的 Rails 环境。我正在使用 rails 2.3.16 和 ruby 1.9.3
我必须在运行测试用例时更改我的 rails 环境。
if Rails.env.production?
# Do something
else
# Do something else
end
我如何在测试用例中更改我的 Rails 环境。我正在使用 rails 2.3.16 和 ruby 1.9.3
如果您想测试该代码,您需要通过执行类似的操作来存根该调用。
Rails.stub_chain(:env, :production?).and_return(true)
这基本上会使任何调用Rails.env.production?
返回 true。
您没有提供太多用于运行测试用例的框架,以便在带有模拟的 RSpec 中工作。
这将使您所做的任何调用都进入该代码块,以便您可以针对它编写测试。
要测试上面提到的代码,如果您使用 RSpec,您可以更改 @Leo 提到的环境。如果您使用 Rails 内置框架来编写测试用例,那么您可以这样做。
Rails.env.stubs(:production?).returns(true)
利用
Rails.env.stubs(:production?).returns(true)
如果您使用 Rails 内置的测试框架来编写测试用例。
像这样更好地表达这个问题(见下文)。我尝试将这些作为对原始问题的编辑提交,但一些“聪明”的审稿人决定拒绝我的编辑。有趣的是,那些拒绝我的编辑的人似乎对 ruby/rails 的经验为零
我必须为一段依赖于 rails 环境的应用程序代码编写测试用例。代码如下所示:
if Rails.env.production?
# Do something
else
# Do something else
end
如何在我的测试用例中模拟 Rails 环境,以便我可以测试if
部分和else
部分逻辑?
我正在使用 rails 2.3.16 和 ruby 1.9.3