Я работаю с фабриками Laravel 6.17.1 для тестирования очень простой модели, только одно поле: «деньги» - целое число. Это моя фабрика:
$factory->define(wallet::class, function (Faker $faker) {
return [
'money' => $faker->numberBetween($min = 500, $max=900)
];
});
, но когда я использую vendor/bin/phpunit
для запуска тестов, я получаю следующую ошибку:
Общая ошибка: 1 нет такой таблицы: кошельки (SQL: вставить в значения "wallets" ("money", "updated_at", "creation_at") (545, 2020-03-27 10:20:12, 2020-03-27 10:20:12))
но таблица существует, и моя модель соответствует ей, я проверил это, создав функцию в контроллере и создав некоторые данные в таблице, и она работает:
public function dummyCreation(){
wallet::create(['money' => 100]);
return 'works!';
}
Может ли кто-нибудь помочь мне здесь? Я добавлю свою модель и мой тест ниже, если это поможет:
class wallet extends Model
{
protected $fillable = ['money'];
public function transfers(){
return $this->hasMany('App\Transfer');
}
}
public function testGetWallet()
{
$wallet = factory(Wallet::class )->create();
$transfers = factory(Transfer::class, 3)->create([
'wallet_id' => $wallet->id
]);
$response = $this->json('GET','/api/wallet');
$response->assertStatus(200)
->assertJsonStructure([
'id', 'money', 'transfers' =>[
'*' =>[
'id', 'amount', 'description', 'wallet_id'
]
]
]);
$this->assertCount(3, $response->json()['transfers']);
}