测试 laravel 控制器 - 伪造 Illuminate\Http\Request

Testing a laravel controller - Faking a Illuminate\Http\Request

我有一个控制器,它正在获取通过构造函数注入的 Illuminate\Http\Request 的实例。现在我需要编写一个单元测试来测试控制器中使用 Request 实例中的值的调用。我决定使用 Faker。如何使用 Faker 生成关联数组,以便我可以在我的测试用例中使用该数组,如

$this->post('the_uri','MyFakerArray')

动态数组将在我的控制器请求中自动可用。

不需要fake/mock请求对象。 当您模拟请求时 laravel 会为您执行此操作,它会向您请求的 url 创建一个请求并传递变量,然后您会从应用程序中取回响应。

例如:

$response = $this->call('POST', '/user', ['name' => 'Taylor']);

现在 $response 变量有要测试的数据。

我认为你有:

 getContent() // for getting the reponse body
 getCode()    // for http code: 200, 401 etc

当你这样做时,你的测试应该与响应一起工作,在这种情况下你不需要 Faker。