内容

名称

Test2::Util::Facets2Legacy - 将 facet 数据转换为旧版事件 API。

描述

此模块导出旧版事件 API 中的几个子例程(参见 Test2::Event)。这些子例程可以用作任何提供自定义 facet_data() 方法的对象的方法。这些子例程也可以用作函数,这些函数接受 facet 数据哈希引用作为参数。

概要

作为方法

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() 是目前此库中唯一在检测到循环时具有回退行为的子例程。

EXPORTS

默认情况下不导出任何内容。您必须指定要导入的方法,或使用 ':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)。 如果没有请求终止,则返回 undef。

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

获取方面或事件的 UUID。

注意:如果检测到循环并且事件用作参数,这将回退到 $e->SUPER::uuid()

SOURCE

Test2 的源代码库可以在 http://github.com/Test-More/test-more/ 找到。

MAINTAINERS

Chad Granum <[email protected]>

AUTHORS

Chad Granum <[email protected]>

COPYRIGHT

Copyright 2020 Chad Granum <[email protected]>。

本程序是自由软件;您可以根据与 Perl 本身相同的条款重新分发和/或修改它。

参见 https://dev.perl5.cn/licenses/