【发布时间】:2019-03-19 12:28:16
【问题描述】:
所以我给出了我的控制器和 web.php 文件的示例。
controller
{
public function add()
{
//Method called via web.php
}
public function multiply()
{
//how to access this while testing
}
}
web.php
route::get('/add','controller@add');
现在我要执行单元测试
case1: add $response = $this->get(route('add')); 现在它会在访问/add 并访问控制器方法add 时发送一个get 请求。然后我可以使用各种断言来检查它的功能。
case2: multiply 这里没有指定路由,所以无法访问控制器方法。
在这种情况下如何测试我的乘法方法
更新答案
所以从所有的答案和 cmets 中,我已经明白在 Laravel 中
- 单元测试 - 创建一个控制器实例,然后调用您要测试的方法。
- 功能测试 - 在这种测试模式下,我们将调用路由并测试是否命中了正确的方法以及它是否按预期工作。
谢谢!!
【问题讨论】:
-
那些对我来说不像单元测试。要进行单元测试,您需要实例化您想要测试的控制器,然后调用您想要测试的方法。
-
好吧,我不知道。让我检查一下。无论如何谢谢
-
仅供参考 通过路由进行的测试通常被称为功能测试。 Laravel 的默认结构有一个这样的样本以及一个单元测试的样本 - laravel.com/docs/5.8/testing#introduction
-
@DarrylE.Clarke 非常感谢。 :)
标签: php laravel unit-testing web testing