包含 ID 的 PHPUnit / DUSK 测试路线

问题描述 投票:0回答:1

我正在进行我的第一个 DUSK(基于 PHPUnit)测试。我正在创建一个客户并转到他们的

show
页面。 UUID 是在保存在数据库中时创建的,并从那时起用作路线的一部分。路由可以处理未知的
uuid
,因为它们具有通配符语法。

Route::get('/customer/{uuid}/show', 'App\Http\Controllers\CustomerController@show')->name('customer.show');

PHPUnit/DUSK 有类似的东西吗?

这就是我累了但是断言失败了。

   ...

   ->press('NEW CUSTOMER')
   ->waitForLocation('/customer/create')
   ->type('first_name', 'John')
   ->type('last_name', 'Doe')
   ->type('date_of_birth', '03/03/1933')
   ->press('SAVE')
   ->waitForLocation('/customer/{uuid}/show')
   ->assertPathIs('/customer/{uuid}/show');

TLDR: PHPUnit 是否允许在路由断言中使用通配符?

laravel phpunit uuid laravel-dusk
1个回答
0
投票

你认为它是如何工作的?客户端必须以某种方式知道 UUID。有3个选项:

  1. 在响应体中返回新创建的客户的UUID。
  2. 从服务器返回带有创建资源位置的 HTTP 301 响应,即将客户端重定向到新客户的页面。
  3. 最后一个 - 在客户端生成 UUID,而不是在后端生成。这样客户将自动知道新客户的 UUID。
© www.soinside.com 2019 - 2024. All rights reserved.