提交 afd0a8ab 编写于 作者: F Federico Ravasio

Just change ENV and restore it afterwards.

Stubbing ENV[] is not safe outside MRI. At some point after the
stubbing has occurred a backtrace is printed to the ActiveSupport
warning log: there Rubinius accesses ENV['RBX_NOCOLOR'] to determine
if it should print the backtrace with colors or not, causing the
stub to fail. Other implementations might access ENV in a different
way too, we just can't predict it.
The only thing we can do here is to actually set the ENV with what
we want and restore it afterwards.
上级 21a71cd5
......@@ -253,7 +253,8 @@ def test_serialized_fixtures
end
def test_fixtures_are_set_up_with_database_env_variable
ENV.stubs(:[]).with("DATABASE_URL").returns("sqlite3:///:memory:")
db_url_tmp = ENV['DATABASE_URL']
ENV['DATABASE_URL'] = "sqlite3:///:memory:"
ActiveRecord::Base.stubs(:configurations).returns({})
test_case = Class.new(ActiveRecord::TestCase) do
fixtures :accounts
......@@ -266,6 +267,8 @@ def test_fixtures
result = test_case.new(:test_fixtures).run
assert result.passed?, "Expected #{result.name} to pass:\n#{result}"
ensure
ENV['DATABASE_URL'] = db_url_tmp
end
end
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册