是否可以在 ActionDispatch::IntegrationTest 中更改 Rails ENV?
Is it possible to change Rails ENV in ActionDispatch::IntegrationTest?
ENV 变量值在 rails 应用程序的 config/application.yml 中设置。是否可以仅针对 ActionDispatch::IntegrationTest 中的特定测试用例进行更改?像这样:
class DummyTest < ActionDispatch::IntegrationTest
context '...' do
it '...' do
ENV['API_URL'] = ...
end
end
end
我试过了,但似乎没有任何改变。谢谢
我认为您错过了 Rails 文档中的 creating-rails-environments 配置。
这应该可以解决您的问题,而无需猴子修补您的规格上的任何内容。
我还建议使用 dotenv gem 来帮助您处理环境变量。在您的情况下,您将至少拥有这些文件:
- .env.development
- .env.test
如果你真的想为特定测试更新一个值,我建议像建议的那样存根它 here
ENV 变量值在 rails 应用程序的 config/application.yml 中设置。是否可以仅针对 ActionDispatch::IntegrationTest 中的特定测试用例进行更改?像这样:
class DummyTest < ActionDispatch::IntegrationTest
context '...' do
it '...' do
ENV['API_URL'] = ...
end
end
end
我试过了,但似乎没有任何改变。谢谢
我认为您错过了 Rails 文档中的 creating-rails-environments 配置。
这应该可以解决您的问题,而无需猴子修补您的规格上的任何内容。
我还建议使用 dotenv gem 来帮助您处理环境变量。在您的情况下,您将至少拥有这些文件:
- .env.development
- .env.test
如果你真的想为特定测试更新一个值,我建议像建议的那样存根它 here