【发布时间】:2014-08-20 23:10:19
【问题描述】:
我想使用 rspec 测试一个迭代器。在我看来,唯一可能的产量匹配器是yield_successive_args(根据https://www.relishapp.com/rspec/rspec-expectations/v/3-0/docs/built-in-matchers/yield-matchers)。其他匹配器仅用于单次屈服。
但如果屈服的顺序与指定的顺序不同,yield_successive_args 会失败。
是否有任何方法或好的解决方法可以测试以任何顺序产生的迭代器?
类似于以下内容:
expect { |b| array.each(&b) }.to yield_multiple_args_in_any_order(1, 2, 3)
【问题讨论】:
-
我添加了一个功能请求,请随时提出比
yield_multiple_args更好的名称:github.com/rspec/rspec-expectations/issues/595 -
你也可以在这里提供迭代器代码吗?
-
我正在寻找任何迭代器的通用解决方案,唯一重要的是它以任何顺序产生所有参数。
标签: ruby-on-rails ruby rspec iterator yield