4

我在 String 类中有一个实例方法,它调用 Array 实例方法“shuffle”。为了让我使用 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 回答