什麼是測試哈希包含特定鍵和值的有效方法?在Ruby測試中驗證大哈希的有效方法
通過高效的我指的是以下項目:失敗時
- 易於讀取輸出
- 最短的測試仍然是功能
有時Ruby我必須創建一個大的散列。我想了解一個有效的方法來測試這些散列:
expected_hash = {
:one => 'one',
:two => 'two',
:sub_hash1 => {
:one => 'one',
:two => 'two'
},
:sub_hash2 => {
:one => 'one',
:two => 'two'
}
}
我可以測試這有幾種方法。這兩種方式我用的最多是整個哈希一次,或單個項目:
assert_equal expected_hash, my_hash
assert_equal 'one', my_hash[:one]
這些工作就像我們例如哈希散列小,但對於一個非常大的哈希這些方法打破。整個哈希測試將顯示太多的失敗信息。單項測試會讓我的測試代碼太大。
我在想一個有效的方法是將測試分解成許多隻驗證部分散列的較小測試。每個這些較小的測試都可以使用整個哈希樣式測試。不幸的是,我不知道如何讓Ruby爲不在子哈希中的項目執行此操作。子哈希可以做如下:
assert_equal expected_hash[:sub_hash1], my_hash[:sub_hash1]
assert_equal expected_hash[:sub_hash2], my_hash[:sub_hash2]
如何測試散列的其餘部分?
這個偉大的工程!你對期望值做一個更小的散列,然後#to_a它。減去我實際散列的#to_a版本。如果你沒有得到一個空數組,那麼一些期望的值就會丟失。 – Jason