Мне нужно написать тесты для POST-запроса. Большинству из них нужен зарегистрированный пользователь (иногда с некоторым разрешением). Я написал этот тест:
<?php
namespace Tests\Feature;
use Illuminate\Foundation\Testing\RefreshDatabase;
use Tests\TestCase;
use App\User;
class ExampleTest extends TestCase
{
/**
* A basic test example.
*
* @return void
*/
public function testBasicTest()
{
// $user = new User([
// 'id' => 1,
// 'name' => 'yisdfsdsh',
// 'password' => 'helloWorld',
// 'admin' => 1
// ]);
$user = User::find(1);
$response = $this->actingAs($user)->withHeaders([
'X-Header' => 'Value',
])->json('POST', '/change-password', ['password' => 'newpassword', 'confirmPassword' => 'newpassword']);
$response->assertStatus(201);
// $this->get('/')->assertStatus(200);
}
}
Но у меня есть ошибка:
Подсветка \ База данных \ QueryException: не удалось найти драйвер (SQL: PRAGMA foreign_keys = ON;)
Я тоже пробовал:
$user = new User([
'id' => 1,
'name' => 'yisdfsdsh',
'password' => bcrypt('helloWorld'),
'admin' => 1
]);
Но он получает статус 500. Как я могу написать этот тест? Метод этого контроллера должен обновить пароль пользователя.
@ Edit Я попытался написать код с фабрикой:
$user = factory(User::class)->create();
$response = $this->actingAs($user)->withHeaders([
'X-Header' => 'Value',
])->json('POST', '/change-password', ['password' => 'newpassword', 'confirmPassword' => 'newpassword']);
$response->assertStatus(201);
Но у меня та же ошибка
Осветить \ Database \ QueryException: не удалось найти драйвер (SQL: PRAGMA foreign_keys = ON;)