测试array.sample不会给出连续的等效结果

时间:2012-03-14 18:21:09

标签: ruby-on-rails ruby rspec

我将如何测试以下辅助方法?

module HypotheticalHelper
  def next(array)
    array.sample
  end
end

我有这个:

helper.next([1,2]).should_not == helper.next([1,2])

有没有比重复统计次数更好的技术?

1 个答案:

答案 0 :(得分:1)

你想测试什么行为?你从数组中得到随机元素?如果是这样,那么只需运行测试,直到相同的调用返回与上次运行不匹配的元素。

如何使用?如果你想随机访问数组,为什么不简单地array.shuffle!然后迭代数组?

Array#sample 可以给出连续的等效结果;它预计会。如果你想永远不会同时获得相同的结果,那么你将不得不维持状态和循环,直到你得到的结果不是最后的结果,或者你想要使用像我的shuffle建议这样的东西(永远不会给出重复的结果)。

相关问题