为什么我会收到此错误?似乎我做的一切都正确
试验:
public function test_user_can_add_product_to_cart()
{
$user = User::factory()->create();
$this->actingAs($user);
$response = $this->post('addProductToCart', ['quantity' => 4], [
Product::first(),
]);
$response->assertRedirect('/products');
}
途径:
Route::middleware([auth::class])->group(function () {
Route::post('/cart/add/{product}', [CartController::class, 'addProductToCart'])->name('addProductToCart');
}
控制器:
public function addProductToCart(Request $request, Product $product)
{
return redirect()->route('products.index')->with('alert', 'Added product to cart');
}
2条答案
按热度按时间eufgjt7s1#
addProductToCart
是控制器中方法的名称,也是路由的名称,但实际调用该方法的URL是/cart/add/{product}
。因此,要使其工作,您需要将POST
指向该URL。您可以通过多种不同的方式来完成此操作:
您还需要在测试中定义
$product
,这样才能正常工作,类似于:因此,总体而言,您的测试将如下所示:
ny6fqffe2#
您需要在测试中使用
route()
帮助器: