3

Ruby 用の Curl gem ( https://github.com/taf2/curb ) を使用しており、rspec テストの 1 つで Curl.get をスタブする必要があります (空の応答を返すため)。

これが私が試したことです:

o = OpenStruct.new(:body => '')
Curl.any_instance.stub(:get).and_return(o)

残念ながら、Curl はクラス ( https://github.com/taf2/curb/blob/master/lib/curl.rb ) ではなくモジュールであるため、スタブしようとするとエラーが発生します。

stock_spec.rb:20:in `block (2 levels) in <top (required)>': undefined method `any_instance' for Curl:Module (NoMethodError)

rspec を使用してモジュール内のメソッドをスタブするにはどうすればよいですか?

4

2 に答える 2

2

をスタブする必要がある場合はCurl.get、次のようにします。

o = OpenStruct.new(:body => '')
Curl.stub(:get).and_return(o)

Ruby では、モジュールとクラスのメソッドは依然としてメソッドにすぎません。

于 2013-10-24T02:10:15.543 に答える