【问题标题】:How to dump all Mojolicious routes?如何转储所有 Mojolicious 路线?
【发布时间】:2018-10-07 12:02:32
【问题描述】:

完整的 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?

【问题讨论】:

    标签: perl mojolicious-lite


    【解决方案1】:

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

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

    可以从Test::Mojo 对象以$test->app 访问该应用程序。请注意,该方法的文档包括验证路由的测试:

    ok $t->app->routes->find('echo')->is_websocket, 'WebSocket route';
    

    请注意,您必须使用应用名称初始化测试对象,或者稍后为其分配应用实例,以便通过测试对象访问应用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-16
      相关资源
      最近更新 更多