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()
是目前此库中唯一在检测到循环时具有回退行为的子例程。
默认情况下不导出任何内容。您必须指定要导入的方法,或使用 ':ALL' 标签。
检查事件或方面是否导致失败状态。
检查事件或方面是否包含任何诊断信息。
检查事件或方面是否需要全局处理。
检查事件或方面是否进行断言。
检查事件或方面是否应该渲染或隐藏。
检查事件或方面是否设置了计划,并返回计划详细信息。
获取子测试 ID(如果有)。
获取事件或方面哈希的摘要(如果有)。
检查事件或方面是否应该导致进程终止,如果是,则返回退出代码(可能是 0)。 如果没有请求终止,则返回 undef。
获取方面或事件的 UUID。
注意:如果检测到循环并且事件用作参数,这将回退到 $e->SUPER::uuid()
。
Test2 的源代码库可以在 http://github.com/Test-More/test-more/ 找到。
Copyright 2020 Chad Granum <[email protected]>。
本程序是自由软件;您可以根据与 Perl 本身相同的条款重新分发和/或修改它。
参见 https://dev.perl5.cn/licenses/