2010-10-25 91 views
3

我有兩種數據結構,它們是哈希和數組的混合。我如何比較兩個數據結構並返回它們的差異,比如perl的Test :: Harness模塊​​,但我不想實際運行單元測試。 ......或者有沒有辦法在沒有實際運行單元測試的情況下測試Test :: Harness?Perl需要比較兩種數據結構和返回差異

回答

4

Perl MonksTest::Deep,Data::CompareData::Match是你的朋友。這些軟件包似乎不適合製作詳細的差異,但您可能會在回調中破解精確的差異。

+0

既不Test :: Deep也不Data ::比較適用於生成詳細的差異 - 你錯過了第二句話'不'? – plusplus 2010-10-25 11:59:11

+0

正確,謝謝,錯過「不要」添加。 – 2010-10-26 00:56:10

3

Test :: Deep :: NoTest(來自Test::Deep)可能是你正在尋找的,在測試腳本(eq_deeply,cmp_deeply等)之外賦予Test :: Deep的功能。看看使用deep_diag()來看看有什麼不同。

Data::Compare - 還給函數返回布爾響應(而不是像在命令行上使用cmp的文件),但(從內存中)很難返回這些差異。

我最近使用了前者,可能是爲了得到data :: Compare沒有提供的deep_diag()細節,但我沒有嘗試解析響應。