テスト ケースの実行中に 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)
この質問は、次のように明確に表現できます (以下を参照)。これらを元の質問の編集として送信しようとしましたが、一部の「賢い」レビュアーは私の編集を拒否することにしました。興味深いことに、私の編集を拒否した人は、Ruby/Rails の経験がないようです。
Rails 環境に依存するアプリケーション コードのテスト ケースを作成する必要があります。コードは次のようになります。
if Rails.env.production?
# Do something
else
# Do something else
end
ロジックのif
一部と一部の両方をテストできるように、テスト ケースで Rails 環境をシミュレートするにはどうすればよいですか?else
Rails 2.3.16 と Ruby 1.9.3 を使用しています
使用する
Rails.env.stubs(:production?).returns(true)
テスト ケースの作成に Rails 組み込みのテスト フレームワークを使用している場合。