Stub`rand'具有多个未来值

时间:2016-03-18 03:02:01

标签: ruby random testunit

我知道:

//li[@class="vcard hq"]/p/span[@class='locality']/text()

我需要:

require 'mocha/setup'

Kernel.stub(:rand, -1) do
  p Kernel.rand #=> -1
  p Kernel.rand #=> -1
  p Kernel.rand #=> -1
end

如何在我的测试中为Kernel.stub(:rand, [-1, -2, -3]) do p Kernel.rand #=> -1 p Kernel.rand #=> -2 p Kernel.rand #=> -3 end 编制多个未来值?

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

您可以使用sample方法从数组中返回随机值。

[-1,-2,-3].sample #=> -1
[-1,-2,-3].sample #=> -3
[-1,-2,-3].sample #=> -2
[-1,-2,-3].sample #=> -1
[-1,-2,-3].sample #=> -1

所以你可以做到

Kernel.stubs(:rand).returns([-1,-2,-3].sample)