我已经编写了一个基本的api,我试图为它编写测试,但是测试返回404而不是422。我如何解决这个问题,以便验证返回422?
https://github.com/shorif2000/api
在我的控制器里
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);
}
但是测试甚至没有达到。
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."],
发布于 2021-03-07 19:17:53
您正在将您的路由名称传递给->json
方法。相反,您需要通过实际的路径。您可以使用route('api.register')
获取url。
https://stackoverflow.com/questions/66520325
复制相似问题