我在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))
但没有工作:(我在这里错过了一些东西?可能会嘲笑?但是我应该嘲笑那个......
谢谢。
答案 0 :(得分:5)
使用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