簡體   English   中英

Perl單元測試數據結構

[英]Perl Unit Testing Data Structures

我正在尋找像is_deeply或Test :: Deep的cmp_deeply之類的東西,但這只是檢查數據結構的鍵/類型,而不是值。 例如,我關心的是一個鍵是標量的數組引用,但不是值是什么。

有人有主意嗎? 我確信我不是第一個不得不理解不同數據結構的人。 我想測試以確保數據結構的“簽名”是完整的,但我不太關心其中的數據或匹配與正則表達式等的東西。

您可以使用Test :: BuilderTest :: 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM