[英]Perl Unit Testing Data Structures
我正在尋找像is_deeply或Test :: Deep的cmp_deeply之類的東西,但這只是檢查數據結構的鍵/類型,而不是值。 例如,我關心的是一個鍵是標量的數組引用,但不是值是什么。
有人有主意嗎? 我確信我不是第一個不得不理解不同數據結構的人。 我想測試以確保數據結構的“簽名”是完整的,但我不太關心其中的數據或匹配與正則表達式等的東西。
您可以使用Test :: Builder和Test :: More中提供的函數輕松編寫自己的測試函數。
我編寫了測試,假設您的意思是非引用的arrayref,因為您可以存儲在數組中的唯一內容是標量。 您可能想要進行調整。
use Test::Builder;
use Test::More 0.81_01;
sub is_arrayref_of_nonrefs
{
my $value = shift;
local $Test::Builder::Level = $Test::Builder::Level + 1;
return Test::More::ok(0, 'value is an arrayref')
if not ref $value or ref $value ne 'ARRAY';
# fail if any references are found in the arrayref
Test::More::ok((grep { ref } @$value), 'value is an arrayref of non-references');
}
普通測試::更多 isa_ok
方法適用於參考:
isa_ok( $array_ref, 'ARRAY' );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.