内容

名称

Test2::API::Stack - 管理 Test2::Hub 实例堆栈的对象。

***内部说明***

此软件包的内部结构随时可能更改!提供的公共方法不会以向后不兼容的方式更改,但底层实现细节可能会更改。请勿破坏此处的封装!

说明

此模块用于表示和管理 Test2::Hub 对象的堆栈。通常将 Hub 放入堆栈中,以便你可以将新 Hub 推入适当的位置,以便以不同于主 Hub 的方式拦截和处理事件。

概要

my $stack = Test2::API::Stack->new;
my $hub = $stack->top;

方法

$stack = Test2::API::Stack->new()

这将创建一个新的空栈实例。所有参数都将被忽略。

$hub = $stack->new_hub()
$hub = $stack->new_hub(%params)
$hub = $stack->new_hub(%params, class => $class)

这将生成一个新的集线器并将其推送到栈顶。您还可以选择提供将传递给 Test2::Hub 对象的构造函数的参数。

如果您指定 'class' => $class 参数,则新集线器将是指定类的实例。

除非您的参数指定 'formatter''ipc' 参数,否则格式化程序和 IPC 实例将从当前顶部集线器继承。您可以将参数设置为 undef 以避免拥有格式化程序或 IPC 实例。

如果没有顶部集线器,并且您没有要求将 IPC 和格式化程序保留为 undef,那么将创建一个新的格式化程序,并将使用 Test2::API 中的 IPC 实例。

$hub = $stack->top()

这将从栈中返回顶部集线器。如果还没有顶部集线器,这将创建它。

$hub = $stack->peek()

这将从栈中返回顶部集线器。如果还没有顶部集线器,这将返回 undef。

$stack->cull

这将在栈中的所有集线器上调用 $hub->cull

@hubs = $stack->all

这将以列表的形式返回栈中的所有集线器。

$stack->clear

这将从栈中完全删除所有集线器。通常您不希望这样做,但有几个这样做是有效的理由。

$stack->push($hub)

这将把新集线器推送到堆栈上。

$stack->pop($hub)

这将从堆栈中弹出集线器,如果堆栈顶部的集线器与您期望的集线器不匹配(作为参数传入),它将抛出异常。

SOURCE

Test2 的源代码存储库位于 http://github.com/Test-More/test-more/

MAINTAINERS

Chad Granum <[email protected]>

AUTHORS

Chad Granum <[email protected]>

COPYRIGHT

版权所有 2020 Chad Granum <[email protected]>。

此程序是免费软件;您可以在与 Perl 本身相同的条款下重新分发和/或修改它。

请参阅 https://dev.perl5.cn/licenses/