在 Test::More 中否定 is_deeply() 函数
Negated is_deeply() function in Test::More
Test::More 有 is_deeply()
并在 documentation 中提到应该使用它而不是 eq_array()
或 eq_hash()
因为它有更好的诊断,并且它指出 ...它们可能会在未来的版本中被弃用
现在我正在用eq_...()
函数代替is_deeply()
但是我运行遇到了问题,没有is_not_deeply()
或者这样的函数,我进行这样的测试:
ok (!eq_hash(\%h1, \%h2));
有没有我可以用来测试深度 不等式 的惯用替代方法,最好使用 Test::More?
不像eq_hash()
,只是returns真假,需要包裹在ok()
中,is_deeply()
本身就是一个测试。因此,如果您将其包装在如下所示的“ok()”中:
ok(!is_deeply(\%h1, \%h2));
现在有两个测试,is_deeply()
未通过,ok()
会通过!
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;
Test::More 有 is_deeply()
并在 documentation 中提到应该使用它而不是 eq_array()
或 eq_hash()
因为它有更好的诊断,并且它指出 ...它们可能会在未来的版本中被弃用
现在我正在用eq_...()
函数代替is_deeply()
但是我运行遇到了问题,没有is_not_deeply()
或者这样的函数,我进行这样的测试:
ok (!eq_hash(\%h1, \%h2));
有没有我可以用来测试深度 不等式 的惯用替代方法,最好使用 Test::More?
不像eq_hash()
,只是returns真假,需要包裹在ok()
中,is_deeply()
本身就是一个测试。因此,如果您将其包装在如下所示的“ok()”中:
ok(!is_deeply(\%h1, \%h2));
现在有两个测试,is_deeply()
未通过,ok()
会通过!
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;