我使用Dancer::Plugin::Ajax來定義perlDancer中的一些ajax路由。Perl舞者測試:ajax路由沒有route_exists?
get '/' => sub {
template 'index' => $data;
};
ajax '/api/foo' => sub {
...
};
ajax '/api/bar' => sub {
...
};
在我的測試,我想測試,如果確實存在的所有路由:
route_exists [GET => '/'], 'a route handler is defined for /';
route_exists [AJAX => '/api/foo'], 'an ajax route handler is defined for /api/foo';
route_exists [AJAX => '/api/bar'], 'an ajax route handler is defined for /api/bar';
但不幸的是不起作用。我也試過
route_exists [GET => '/api/foo'], 'an ajax route handler is defined for /api/foo';
route_exists [GET => '/api/bar'], 'an ajax route handler is defined for /api/bar';
沒有更迭。
我錯過了文檔中的正確聲明嗎?從 @simbabque第一個答案後
更新:
它幾乎現在的作品。 不幸的是find_route在舞者::應用使用
next if $r->has_options && (not $r->validate_options($request));
是否會使用
next if $r->has_options && (not $r->check_options($request));
一切都將正常工作。 背景是:validate_options在舞者::路線只檢查$ _options_aliases,但 所需的選項是 'AJAX' 而這僅僅是在$ _supported_options提及。
想法如何解決這個限制? (我會加我的解決方案,如果這是固定的。)
的'ajax'處理工程通過檢查請求標題。你需要在你的測試中僞造那些。我需要做一些準確的調查。 – simbabque