У меня есть этот код:
/** @test */
public function testBasicExample()
{
$user = User::find(1);
// $user = factory(User::class)->create();
$response = $this->actingAs(User::find(1))->json('POST', '/store/ad', [
'title' => 'Hello World',
'city' => 1,
'phone' => '666555555',
'description' => 'fasd asd as d asd as d asd as d asd as d asd as d asd as da sd asd',
'user_id' => 1
]);
$response
->assertStatus(201)
->assertJson([
'created' => true,
]);
}
К сожалению, в данный момент у меня возникла первая проблема. Не удалось увидеть таблицу пользователей.
Освещение \ База данных \ QueryException: SQLSTATE [HY000]: Общая ошибка: 1 нет такой таблицы: пользователи (SQL: выберите * из "пользователей", где " users "." id "= 1 limit 1)
Я смотрю, как я могу решить мою проблему, и я обнаружил, что должен использовать DatabaseMigrations . Поэтому я добавляю, что
use Illuminate\Foundation\Testing\DatabaseMigrations;
class ExampleTest extends TestCase
{
use DatabaseMigrations;
//...
}
Но теперь у меня возникла новая проблема.
TypeError: Аргумент 1, передаваемый в Illuminate \ Foundation \ Testing \ TestCase :: actAs (), должен реализовывать интерфейс Подсветка \ Контракты \ Auth \ Authenticatable, null, заданная
Так что я реализую это
use Illuminate\Contracts\Auth\Authenticatable;
class ExampleTest extends TestCase
{
use DatabaseMigrations;
use Authenticatable;
//...
}
Сгенерирована новая ошибка:
Тесты \ Feature \ ExampleTest не может использовать Illuminate \ Contracts \ Auth \ Authenticatable - это не черта
Как я могу решить мою проблему? Как я могу это проверить?
@ Edit
Я обнаружил проблему, но не знаю, почему она не работает. У меня есть это правило для проверки города
'city' => 'required|integer|exists:cities,id'
Проблема является последним правилом: существует: города, id. Я пробовал разные идентификаторы существующих городов и ничего не работает.