2014-01-10 77 views
1

我目前正在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(當然哪個失敗)。

有沒有辦法做到這一點沒有自定義匹配器?

回答

3

測試帶獨立斷言特定按鍵

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