在 Test::More中否定了 is_deeply() 函数



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

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

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

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

不像eq_hash(),它只返回真或假,需要用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;

相关内容

  • 没有找到相关文章