簡體   English   中英

無法在 Laravel 測試中為 API 路由執行 POST 請求

[英]Can't perform POST requests in Laravel test for API routes

我正在為我的 Laravel 應用程序編寫功能測試,在那里我對我的服務執行一些請求。

在嘗試測試我的 API 時,所有 GET 請求都可以正常工作,但所有 POST 請求都返回此響應:

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />
        <meta http-equiv="refresh" content="0;url='http://localhost'" />

        <title>Redirecting to http://localhost</title>
    </head>
    <body>

我的測試代碼如下所示:

$this->post('api/my/route')->dump();

我的 api 路由如下所示:

Route::prefix('my')->group(function() {
    Route::post('/route', function() {
        return 'ok';
    });

是否有任何中間件等。在創建這樣的請求之前,我可能需要更改/停用?

使用web.php路由時,這些請求工作正常

正如@Deepesh Thapa提到的,您應該返回 JSON。

在你的測試中,你應該像這樣添加postJson

$this->postJson('api/my/route')

瀏覽文檔

祝你好運!

您將需要返回一個 json 響應。 json 方法會自動將 Content-Type 標頭設置為 application/json,並使用 json_encode PHP 函數將給定的數組轉換為 JSON:

所以你確實應該返回如下數據。

Route::prefix('my')->group(function() {
    Route::post('/route', function() {
        return response()->json(['message'=>'ok']);
    });

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM