php - 测试未链接到任何路由的 Controller 方法

标签 php laravel unit-testing web testing

所以我给出了我的 Controller 和 web.php 文件的示例。

controller
{
   public function add() 
   {
      //Method called via web.php
   }
   public function multiply() 
   {
      //how to access this while testing
   }
}

网络.php

route::get('/add','controller@add');

现在我想进行单元测试

case1: add $response = $this->get(route('add')); 现在在访问/add时会发送一个get请求并且 Controller 方法 add 将被访问。然后我可以使用各种断言来检查它的功能。

case2: multiply 这里没有指定任何路由,因此无法访问 Controller 方法。

在这种情况下如何测试我的乘法

更新的答案

所以从所有的答案和评论中,我了解到在 Laravel 中

  1. 单元测试 - 创建一个 Controller 实例,然后调用您要测试的方法。
  2. 功能测试 - 在这种测试模式下,我们将调用路由并测试是否已命中正确的方法并且它是否按预期工作。

谢谢!!

最佳答案

您可以像下面这样在测试文件中创建 Controller 对象。

 public function testBasicTest()
 {
    $object = (new UsersController());
    $response = $object->methodName();
    $this->assertTrue($response);
 }

关于php - 测试未链接到任何路由的 Controller 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55241099/

相关文章:

php - 使用包含 GET url 的参数的 CURL Get 请求

php - .htaccess 未重定向/to/index.php

laravel - 将 csrf token 从 Laravel 传递到 Vue

laravel - 当数据库中的项目数量低于特定数字(例如 Laravel 中的 5)时,制作模式弹出窗口

Python:TypeError:<lambda>() 采用 0 个位置参数,但由于断言给出了 1 个

eclipse - 如何让 Eclipse 运行我所有的 Groovy 单元测试?

php - 在 Elasticsearch Php 中向现有过滤器添加多个过滤器

php - 自动生成 PHP 文档?

laravel - 如何在 Laravel 4.2 中使用查询字符串重定向命名路由

unit-testing - VSTS : dotnet with Docker fail to publish tests