ただのモックの書き方だが具体例を添えて。
環境
rails (5.2.0) rspec (3.7.0)
やり方
allowとand_returnを使う
allow(Rails).to receive(:env).and_return(ActiveSupport::StringInquirer.new("production"))
原理
allow({{クラス名}}).to receive({{メソッド名}}).and_return({{代替死体戻り値}})
の形式で戻り値の振る舞いを変えることができる
Rails.env
における戻り値の型はただのStringではなく ActiveSupport::StringInquirer
Rails.env # => "development" Rails.env.class # => ActiveSupport::StringInquirer
そのため、それを当てはめてやれば良い