测试hash是否包含任何元素

时间:2013-09-15 17:41:50

标签: ruby hash rspec

我正在使用Rspec进行测试,我想检查一个数组是否包含另一个数组中的某个元素。

elements = ['e1', 'e2']
hash = {'e1' => 5, 'e8' => 8}

it "Include any element from elements" do
  hash.should include('e1') || hash.should include('e2')
end

hash应包含元素中的任何元素(作为键)。有一种更优雅的方式吗?感谢。

2 个答案:

答案 0 :(得分:3)

这应该有效:

(elements & hash.keys).should_not be_blank

如果数组包含至少一个存在于another_array中的元素,则会传递。

hash.keys只返回该哈希的所有键的数组。

答案 1 :(得分:1)

大概:

anotherArray = anotherArray | elements

或者只是

anotherArray |= elements

更新:

elements.each{|e| hash[e] = e[1..-1].to_i unless hash.has_key?(e)}