测试哈希表中是否包含特定的键,并且这些键对应的值不为nil。

9

如何使用RSpec测试一个方法返回的哈希中包含特定键,且这些键对应的值不为nil?

2个回答

11

我会写成:

describe MyObject do
  describe "#my_method" do
    subject(:my_method) { MyObject.new.my_method }

    it { is_expected.to be_a_kind_of(Hash) }
    specify { expect(my_method.keys).to include(:key1, :key2) }
    specify { expect(my_method.values).not_to include(nil) }
  end
end

有时候你可能需要使用带有双引号的键"key1"、"key2",否则可能会报错。


8

类似这样的内容:

test_method.values_at("key1", "key2").should_not include(nil)

1
如果哈希表中的一个值实际上是nil,那么这种方法将无法奏效。使用hash.keys.should =~ [:key1, :key2]应该可以解决问题。 - Eric H.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接