1

Test::Moreis_deeply()文档中提到应该使用它而不是eq_array()或者eq_hash()因为它具有更好的诊断功能,并且它指出......它们可能在未来的版本中被弃用

现在我正在替换eq_...()函数的使用,is_deeply()但我遇到了一个问题,没有is_not_deeply()或没有这样的函数,我有一个这样的测试:

ok (!eq_hash(\%h1, \%h2));

是否有一种惯用的替代方法可以用来测试深度不等式,最好使用 Test::More?

eq_hash()只返回 true 或 false 并需要包裹在 中的不同ok()is_deeply()它本身就是一个测试。因此,如果您将其包装在“ok()”中,如下所示:

ok(!is_deeply(\%h1, \%h2));

现在有两个测试,is_deeply()一个是失败的ok(),一个是通过的!

4

1 回答 1

3

似乎此功能不适用于Test::More. 然后我建议Test2改用:

use strict;
use warnings;
use Test2::V0;

my %h1 = (a => [1,2,3], b=>"x");
my %h2 = (a => [1,2,3], b=>"x");

isnt (\%h1, \%h2, "Hashes are not equal" );
done_testing;
于 2021-12-19T14:25:56.647 回答