Я провожу тесты, с подтверждением, только мне нужно чтобы по ресту сохранялись данные не в основную бд, а в тестовую, как примерно это можно реализовать?
Моя реализация
/**
* Успещная регистрация
*/
public function testRegisterSuccess()
{
$response = $this->getPathSuccess('POST', '/api/register', ['email' => 'test3@test.net', 'password' => 'test123']);
$response->assertJsonStructure([
'success',
'error',
'response' => ['message'],
'message'
]);
}
/**
* Проверяет на успешность запроса на регистрацию
* @param $method
* @param $url
* @param $data
*
* @return \Illuminate\Foundation\Testing\TestResponse
*/
protected function getPathSuccess(string $method, string $url, array $data)
{
return $this->json($method, $url, $data)
->assertStatus(200)
->assertHeader('Content-type', 'application/json;charset=utf-8');
}
Контроллер если нужен
public function register(ApiRegister $request)
{
$request->validated();
try {
User::create([
'name' => $request->input('name'),
'email' => $request->input('email'),
'password' => Hash::make($request->input('password'))
]);
return ResponseApi::response(['message' => 'Пользователь создан']);
} catch (\Exception $exception){
return ResponseApi::response([], false, 500, ['errors' => 'Произошла ошибка']);
}
}
в /confin/database.php добавил
'testing' => [
'driver' => 'pgsql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '5432'),
'database' => env('DB_DATABASE', 'test_database'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'prefix' => '',
'schema' => 'public',
'sslmode' => 'prefer',
],
В .env.testing изменил
APP_ENV=testing
DB_CONNECTION=testing
DB_HOST=127.0.0.1
DB_PORT=5432
DB_DATABASE=test_database
DB_USERNAME=implant_user
DB_PASSWORD=kazan1811
И в phpunit.xml
<env name="APP_ENV" value="testing"/>
<env name="DB_CONNECTION" value="testing"/>
Потом применил миграцию
php artisan migrate --database=testing --env=testing
Миграция применилась, таблицы созданы, но теперь вопрос, как сделать так, чтобы данные тестовые, записывались в тестовую бд test_database.