首页 > 解决方案 > 使用子域通配符时如何编写 api 测试

问题描述

在我当前的项目中,我想在我正在实现的整个 API 中使用子域作为“团队”标识符。

但是,我在为如何使用测试中的正确参数调用这些路由而苦苦挣扎。

这是我的路线文件(api)的一部分

<?php

use Illuminate\Http\Request;

Route::group(['domain' => '{team}.' . env('APP_URL', 'localhost:8000')], function () {
    Route::prefix('auth')->group(function () {
        Route::post('login', 'AuthController@login');

        Route::group(['middleware' => 'auth:api'], function(){
            Route::get('me', 'AuthController@me');
        });
    });
});

当我没有子域通配符时,我的测试过去看起来像这样。

/** @test */
public function should_fail_validation_when_no_body_is_sent()
{
  $response = $this->post('/api/auth/login');

  $response->assertStatus(422);
}

我找不到任何有关如何解决此问题以进行测试的资料。

我试过了

$response = $this->post('http://test. ' . env('APP_URL') . '/api/auth/login');

这也导致了 404

标签: laravel

解决方案


推荐阅读