是否可以仅在测试模式下运行某些控制器和路由?
我需要在链接点击时模拟一些响应.我会创建控制器和路径,只有在我运行游戏测试时才可用.
可能吗?
正如Mike指出的那样,我博客的代码确实向您展示了如何配置路由文件,以便只有某些路由可用于Dev或Prod模式.所以...
%{ if (play.mode.isDev()) { }%
GET /route4 Application.noProd
GET /route5 Application.noProd
GET /route6 Application.noProd
%{ } }%
Run Code Online (Sandbox Code Playgroud)
但是,这确实会阻止这些路由在Prod模式下工作,但它们不会排除控制器被访问.这样做的原因是,您很可能在路径文件的底部有以下内容
* /{controller}/{action} {controller}.{action}
Run Code Online (Sandbox Code Playgroud)
这意味着我可以Application.noProd使用catch all route 访问该操作,该路径将是以下URL
/application/noprod
Run Code Online (Sandbox Code Playgroud)
所以.如果要隐藏路线和控制器,可以选择几种方法.
您可以删除catch-all路由,这样除了您设置的特定路由之外没有其他条目.这意味着您需要为路径文件中的所有操作指定所有路由.
其次,您可以检查play.mode.isDev()您的操作,并致电badRequest()以防止访问.这将使这更加明显,但可能是编码中不可接受的开销.
| 归档时间: |
|
| 查看次数: |
1685 次 |
| 最近记录: |