RSpec如何使用数组的a_collection_containing_exactly匹配器?

时间:2017-11-14 19:44:35

标签: ruby-on-rails rspec

我真的想使用a_collection_containing_exactly匹配器,但在参数中使用数组而不是直接写入值,比如

contract_ids_subset = order_summaries_subset.map {| c | c.contract_id.to_i} .compact

允许(Shipping :: Owner :: Api :: Helper)。接收(:order_summaries_by_contract_ids_and_delivery_date).with( 的 a_collection_containing_exactly(contract_ids_subset)下, 邮寄日期) {           order_summaries_subset         }

(假设contract_ids_subset = [11111,22222,99999])

如果我硬编码,这项工作 a_collection_containing_exactly(11111,22222,99999)

但是我无法弄清楚如何使用数组[11111,22222,99999]得到相同的结果???

1 个答案:

答案 0 :(得分:1)

你正在寻找ruby中的splat运算符来解构数组。它基本上采用数组的单个参数并解构它,使每个值成为一个参数。

所以你会做类似的事情:

a_collection_containing_exactly(*contact_ids_subset)