使用存根attr_writer创建实例double

时间:2017-03-02 04:10:25

标签: ruby-on-rails rspec

我试图删除Ruby的Net::HTTP use_ssl= attr_writer方法。我该怎么做?

let(:http) { instance_double("Net::HTTP", use_ssl=: true) }

不起作用。我该怎么做呢?我想使用实例double,因为它保留了实际的方法arity并确保该方法存在。

另外,什么是在规范中隐藏此环境变量的最佳方法?

domain = ENV['SERVICE_HOST']

1 个答案:

答案 0 :(得分:0)

要隐藏use_ssl?方法,您可以执行以下操作:

allow_any_instance_of(Net::HTTP).to receive(:use_ssl?).and_return(true)

以类似的方式,为了存根ENV变量,你可以这样做:

allow(ENV).to receive(:[]).with("SERVICE_HOST").and_return("my_host")