我目前正在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)进行比较。
如果没有自定义匹配器,有没有办法做到这一点?
答案 0 :(得分:3)
使用单独的断言测试特定键
expect(result[:key1]).to be_a(String)
expect(result[:key2]).to be_a(String)