如何使用RSpec测试一个方法返回的哈希中包含特定键,且这些键对应的值不为nil?
我会写成:
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",否则可能会报错。
类似这样的内容:
test_method.values_at("key1", "key2").should_not include(nil)
nil
,那么这种方法将无法奏效。使用hash.keys.should =~ [:key1, :key2]
应该可以解决问题。 - Eric H.