RSpec自定义部分哈希匹配

时间:2014-01-10 14:49:56

标签: ruby rspec

我目前正在RSpec中编写测试套件。

我阅读了很多文档,并知道如何进行部分哈希映射。

expect(result).to include({key1: 'value1', key2: 'value2'})

或者,如果您只想检查密钥:

expect(result).to include(:key1, :key2)

但是我想做一些更模糊的事情。我想检查值的类型。类似的东西:

expect(result).to include({key1: instance_of(String), key2: instance_of(String)})

但RSpec并不喜欢这样。它总是会尝试将'valuex'与RSpec ArgumentMatcher(当然是failes)进行比较。

如果没有自定义匹配器,有没有办法做到这一点?

1 个答案:

答案 0 :(得分:3)

使用单独的断言测试特定键

expect(result[:key1]).to be_a(String)
expect(result[:key2]).to be_a(String)