如何创建仅用于测试的 Laravel 路由(phpunit)?
Posted
技术标签:
【中文标题】如何创建仅用于测试的 Laravel 路由(phpunit)?【英文标题】:How to create Laravel route only for testing (phpunit)? 【发布时间】:2018-10-21 03:10:18 【问题描述】:我想测试我的解析器。有没有办法创建路由并在该路由上返回内容 - 仅用于 phpunit 测试?
【问题讨论】:
【参考方案1】:测试的目的是模仿实时应用程序的功能。 (这将是功能测试或可能使用 Dusk)。如果您需要获取无法通过常规路线访问的数据,您可能正在进行单元测试(针对特定的类或对象)。这不需要路由。
【讨论】:
我有一个解析器,它从数据库中获取 url,然后转到该 url 并解析数据并保存在数据库中。对于测试,我想将我的测试 url 插入到 DB 中,这将返回一些用于解析器的代码,然后如果解析器解析并正确保存数据,我可以检查数据库。 那么您需要初始路线才能进入您的数据库吗?使用播种机。 不,我需要解析器 curl 的路由。路由将返回内容供解析器解析。 但这不会发生在您的实时站点中吗? 在你的路由中,使用if ( env('ENVIRONMENT') != 'production' ) ... your routes ...
【参考方案2】:
您可以创建单独的文件仅用于测试路线。
然后仅在开发环境中包含这些路由,或者仅在生产环境中排除它们......
【讨论】:
在您的/routes/web.php
中,您可以添加条件if ( env('ENVIRONMENT') != 'production' ) include_once('test_routes.php')
并在此文件(test_routes.php)中声明您的测试路线...以上是关于如何创建仅用于测试的 Laravel 路由(phpunit)?的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 路由仅在 phpunit 测试期间返回 302 而不是 404 响应
Laravel创建 Service Provider 测试实例