4

Array インスタンス メソッド「シャッフル」を呼び出す String クラスのインスタンス メソッドがあります。RSpec を使用してメソッドをテストするために、メソッドをスタブしたいと考えています。

vowels = %w(a e i o u y)
vowels.shuffle

私は試した:

Array.stub(:shuffle).and_return(%w(a e i o u y))
[].stub(:shuffle).and_return(%w(a e i o u y))

しかし、どれも機能しません:(私はここで何かが欠けていますか?おそらく嘲笑していますか?しかし、私は何を嘲笑すべきですか...

ありがとうございました。

4

1 に答える 1

6

を使用しany_instanceます。例えば:

describe "any_instance.stub" do
  it "returns the specified value on any instance of the class" do
    Array.any_instance.stub(:shuffle).and_return(%w(a e i o u y))

    o = Array.new
    o.shuffle.should eq(%w(a e i o u y))
  end
end

ソース

于 2013-01-12T11:30:41.643 に答える