rails_helper.rb
ENV['RAILS_ENV'] ||= 'test'
rspec内で実行すると
it "サンプル" do
p ENV['RAILS_ENV']
end
"test"
...
Finished in 0.10224 seconds (files took 1.94 seconds to load)
4 examples, 0 failures
コンソールの環境はdevelopmentになる
************ % rails c --sandbox
Loading development environment in sandbox (Rails 7.2.0)
*******(dev)> ENV['RAILS_ENV']
=> "development"
ENVオブジェクト
環境変数を表すオブジェクト。Hash と同様のインターフェースを持ちます。ただし、Hash と異なり、ENV のキーと値には文字列しかとることができません。
また、ENV で得られる文字列は Object#freeze されています。
例
irb(main):002> p ENV['TERM'].frozen?
true
=> true
感想
本当にRSpecはテスト環境なのか知りたかった。
実行環境がテスト環境であることを見ることができてよかった。
安心してtest用のデータベースを作成できる
どこでかは知らないが、ENV['TERM']はnilかfalseになるらしい