我目前正在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(当然失败)进行比较。
有没有办法不用定制火柴?
最佳答案
用单独的断言测试特定的键
expect(result[:key1]).to be_a(String)
expect(result[:key2]).to be_a(String)