Perl 如何甩掉所有迷人的路线?

Perl 如何甩掉所有迷人的路线?,perl,mojolicious-lite,Perl,Mojolicious Lite,完整mojolicous应用程序具有路由命令,该命令将转储应用程序路由: script/my_app.pl routes 如何在测试Lite应用程序的脚本时执行相同的操作 use Mojo::Base -strict; use Test::Mojo; use Test::More; use Mojolicious::Lite; ... # Routes defined here my $t = Test::Mojo->new; $t->dump_all_routes # W

完整mojolicous应用程序具有
路由
命令,该命令将转储应用程序路由:

script/my_app.pl routes
如何在测试
Lite
应用程序的脚本时执行相同的操作

use Mojo::Base -strict;
use Test::Mojo;
use Test::More;

use Mojolicious::Lite;

... # Routes defined here

my $t = Test::Mojo->new;

$t->dump_all_routes # What should I do here?

一个
Mojolicous::Lite
应用程序是一个成熟的Mojolicous应用程序,只是语法更方便

  • 您也可以使用
    /app.pl routes
    在Lite应用程序的命令行上打印路由

  • 可以通过对象以编程方式访问路由,对象是包含单个对象的对象

不幸的是,Routes对象没有记录用于枚举所有路由的API。因此,您必须自己遍历路由树。对应的源代码相当复杂。或者,您可以
->按名称查找($name)
特定路由

可以通过
Test::Mojo
对象访问该应用程序。请注意,该方法的文档包括一个验证路由的测试:

ok $t->app->routes->find('echo')->is_websocket, 'WebSocket route';
请注意,您必须使用应用程序名称初始化测试对象,或者稍后为其分配一个应用程序实例,以便通过测试对象访问应用程序