У меня проблема с модульным тестированием API laravel, это мои конфиги и простой код, но я получаю "Ожидаемый код состояния 201, но получено 500". Но с почтальоном все ок, почему ??? помогите пожалуйста config1 config2 тест контроллер результат
В RegisterController есть особенность, называемая RegistersUsers, и в ней есть метод register ()
Route::post('register', 'Auth\RegisterController@register');
он вызывает метод register (), а вызов метода register зарегистрирован ()
config 1 - config / database.php
'connections' => [
'sqlite' => [
'driver' => 'sqlite',
'database' => ':memory:',
'prefix' => '',
],
config 2 - phpunit.xml
<php>
<env name="APP_ENV" value="testing"/>
<env name="CACHE_DRIVER" value="array"/>
<env name="SESSION_DRIVER" value="array"/>
<env name="QUEUE_DRIVER" value="sync"/>
<env name="DB_CONNECTION" value="sqlite"/>
</php>
тест
public function testRegisterSuccessfully()
{
$register = [
'name' => 'UserTest',
'email' => 'user2@test.com',
'password' => 'testpass',
'password_confirmation' => 'testpass'
];
$this->json('POST', 'api/register', $register)
->assertStatus(201)
->assertJsonStructure([
'token',
'user' => [
'id',
'name',
'email',
'created_at',
'updated_at'
]
]);
}
метод управления
public function registered(Request $request)
{
$user = $this->guard()->user();
$success['token'] = $user->createToken('WAI')->accessToken;
$success['user'] = $user;
return response()->json($success, 201);
}
результат
developer@developer-v3:/var/www/WAI$ composer test
> vendor/bin/phpunit
PHPUnit 6.5.8 by Sebastian Bergmann and contributors.
..F.. 5 / 5 (100%)
Time: 3.78 seconds, Memory: 20.00MB
There was 1 failure:
1) Tests\Feature\Auth\RegisterControllerTest::testRegisterSuccessfully
Expected status code 201 but received 500.
Failed asserting that false is true.
/var/www/WAI/vendor/laravel/framework/src/Illuminate/Foundation/Testing /TestResponse.php:78
/var/www/WAI/tests/Feature/Auth/RegisterControllerTest.php:26
FAILURES!
Tests: 5, Assertions: 6, Failures: 1.
Script vendor/bin/phpunit handling the test event returned with error code 1