內容

名稱

Test2::Util::Facets2Legacy - 將小組資料轉換為舊版事件 API。

說明

此模組從舊版事件 API 匯出多個子常式(請參閱 Test2::Event)。這些子常式可用於提供自訂 facet_data() 方法的任何物件的方法。這些子常式也可以用作函式,將小組資料雜湊作為引數。

語法

方法

package My::Event;

use Test2::Util::Facets2Legacy ':ALL';

sub facet_data { return { ... } }

然後使用它

my $e = My::Event->new(...);

my $causes_fail = $e->causes_fail;
my $summary     = $e->summary;
....

函式

use Test2::Util::Facets2Legacy ':ALL';

my $f = {
    assert => { ... },
    info => [{...}, ...],
    control => {...},
    ...
};

my $causes_fail = causes_fail($f);
my $summary     = summary($f);

循環注意事項

當用作方法時,所有這些子常式都會呼叫 $e->facet_data()Test2::Event 中的預設 facet_data() 方法仰賴此模組模擬的舊版方法才能運作。因此,很容易建立無限遞迴的錯誤。

這些方法具有循環偵測功能,如果偵測到循環,將會立即擲回例外。目前,此函式庫中唯一在偵測到循環時具有備用行為的子常式是 uuid()

匯出

預設不會匯出任何內容。您必須指定要匯入的方法,或使用 ':ALL' 標籤。

$bool = $e->causes_fail()
$bool = causes_fail($f)

檢查事件或切面是否導致失敗狀態。

$bool = $e->diagnostics()
$bool = diagnostics($f)

檢查事件或切面是否包含任何診斷資訊。

$bool = $e->global()
$bool = global($f)

檢查事件或切面是否需要全域處理。

$bool = $e->increments_count()
$bool = increments_count($f)

檢查事件或切面是否進行斷言。

$bool = $e->no_display()
$bool = no_display($f)

檢查事件或切面是否應該渲染或隱藏。

($max, $directive, $reason) = $e->sets_plan()
($max, $directive, $reason) = sets_plan($f)

檢查事件或切面是否設定計畫,並傳回計畫詳細資料。

$id = $e->subtest_id()
$id = subtest_id($f)

取得子測試 ID(如果有的話)。

$string = $e->summary()
$string = summary($f)

取得事件或切面雜湊的摘要(如果有的話)。

$undef_or_int = $e->terminate()
$undef_or_int = terminate($f)

檢查事件或切面是否應導致程序終止,如果是,則傳回結束代碼(可能是 0)。如果未要求終止,則傳回未定義。

$uuid = $e->uuid()
$uuid = uuid($f)

取得切面或事件的 UUID。

注意:如果偵測到循環且事件用作引數,這將會回溯至 $e->SUPER::uuid()

來源

Test2 的原始碼存放庫位於 http://github.com/Test-More/test-more/

維護人員

Chad Granum <exodist@cpan.org>

作者

Chad Granum <exodist@cpan.org>

版權

版權所有 2020 Chad Granum <exodist@cpan.org>。

此程式為自由軟體;您可以在與 Perl 相同的條款下重新散布或修改它。

請參閱 http://dev.perl.org/licenses/