完整的Mojolicious应用程序具有routes命令,该命令将转储应用程序路由:
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?发布于 2018-04-27 02:59:18
Mojolicous::Lite应用程序是一个完全成熟的Mojolicious应用程序,只是具有更方便的语法。
/app.pl routes在精简版应用程序的命令行上打印路由。app->routes对象以编程方式访问路由,该对象是一个包含单个Mojolicious::Routes::Route对象的Mojolicious::Routes对象。不幸的是,Routes对象没有记录枚举所有路由的。因此,您必须自己遍历路由树。Mojolicious::Command::routes command的相应源代码相当复杂。或者,您可以按名称->find($name)特定路由。
该应用程序可以作为$test->app从Test::Mojo对象访问。请注意,该方法的文档包括验证路由的测试:
ok $t->app->routes->find('echo')->is_websocket, 'WebSocket route';请注意,您必须使用应用程序名称初始化测试对象,或者稍后为其分配一个应用程序实例,以便通过测试对象访问应用程序。
https://stackoverflow.com/questions/50048891
复制相似问题