Test2::API::Stack - 管理 Test2::Hub 实例堆栈的对象。
此软件包的内部结构随时可能更改!提供的公共方法不会以向后不兼容的方式更改,但底层实现细节可能会更改。请勿破坏此处的封装!
此模块用于表示和管理 Test2::Hub 对象的堆栈。通常将 Hub 放入堆栈中,以便你可以将新 Hub 推入适当的位置,以便以不同于主 Hub 的方式拦截和处理事件。
my $stack = Test2::API::Stack->new;
my $hub = $stack->top;
这将创建一个新的空栈实例。所有参数都将被忽略。
这将生成一个新的集线器并将其推送到栈顶。您还可以选择提供将传递给 Test2::Hub 对象的构造函数的参数。
如果您指定 'class' => $class
参数,则新集线器将是指定类的实例。
除非您的参数指定 'formatter'
或 'ipc'
参数,否则格式化程序和 IPC 实例将从当前顶部集线器继承。您可以将参数设置为 undef
以避免拥有格式化程序或 IPC 实例。
如果没有顶部集线器,并且您没有要求将 IPC 和格式化程序保留为 undef,那么将创建一个新的格式化程序,并将使用 Test2::API 中的 IPC 实例。
这将从栈中返回顶部集线器。如果还没有顶部集线器,这将创建它。
这将从栈中返回顶部集线器。如果还没有顶部集线器,这将返回 undef。
这将在栈中的所有集线器上调用 $hub->cull
。
这将以列表的形式返回栈中的所有集线器。
这将从栈中完全删除所有集线器。通常您不希望这样做,但有几个这样做是有效的理由。
这将把新集线器推送到堆栈上。
这将从堆栈中弹出集线器,如果堆栈顶部的集线器与您期望的集线器不匹配(作为参数传入),它将抛出异常。
Test2 的源代码存储库位于 http://github.com/Test-More/test-more/。
版权所有 2020 Chad Granum <[email protected]>。
此程序是免费软件;您可以在与 Perl 本身相同的条款下重新分发和/或修改它。
请参阅 https://dev.perl5.cn/licenses/