2010-10-25 93 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()细节,但我没有尝试解析响应。