Laravel фабрики не могут найти таблицу базы данных - PullRequest
1 голос
/ 27 марта 2020

Я работаю с фабриками 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!';
}

evidence of model working

Может ли кто-нибудь помочь мне здесь? Я добавлю свою модель и мой тест ниже, если это поможет:

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']);
}
...