首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Laravel8.x测试api返回错误的状态代码

Laravel8.x测试api返回错误的状态代码
EN

Stack Overflow用户
提问于 2021-03-07 19:08:06
回答 1查看 211关注 0票数 0

我已经编写了一个基本的api,我试图为它编写测试,但是测试返回404而不是422。我如何解决这个问题,以便验证返回422?

https://github.com/shorif2000/api

在我的控制器里

代码语言:javascript
运行
复制
public function register(Request $request)
    {
        die();
        $validatedData = $request->validate([
            'givenName' => 'required|max:55',
            'familyName' => 'required|max:55',
            'email' => 'email|required|unique:users',
            'password' => 'required|confirmed'
        ]);

        $validatedData['password'] = Hash::make($request->password);

        $user = User::create($validatedData);

        $accessToken = $user->createToken('authToken')->accessToken;

        return response(['user' => $user, 'access_token' => $accessToken, "token_type" => "Bearer"], 201);
    }

但是测试甚至没有达到。

代码语言:javascript
运行
复制
php artisan test tests/Feature --filter testRequiredFieldsForRegistration

   FAIL  Tests\Feature\AuthTest
  ⨯ required fields for registration

  ---

  • Tests\Feature\AuthTest > required fields for registration
  Expected status code 422 but received 404.
  Failed asserting that 422 is identical to 404.

  at tests/Feature/AuthTest.php:14
     10▕
     11▕     public function testRequiredFieldsForRegistration()
     12▕     {
     13▕         $this->json('POST', 'api.register', ['Accept' => 'application/json'])
  ➜  14▕             ->assertStatus(422)
     15▕             ->assertJson([
     16▕                 "message" => "The given data was invalid.",
     17▕                 "errors" => [
     18▕                     "givenName" => ["The givenName field is required."],
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-07 19:17:53

您正在将您的路由名称传递给->json方法。相反,您需要通过实际的路径。您可以使用route('api.register')获取url。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66520325

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档