laravelに「データベースにこの挿入をすべて作成しますが、すべてのテストが終了したら、データベースをリセットせずにすべての挿入を削除します」のようなsetUp()およびtearDown()メソッドを作成する方法はありますか?
次のようなテストを行う必要があります。
/** @test */
public function testRegistration(){
$account = [
'name' => 'test',
'email' => 'test@gmail.com',
'password' => '123451234'
];
$this->visit('/register')
->type($account['name'],'name')
->type($account['email'],'email')
->type($account['password'],'password')
->type($account['password'],'password_confirmation')
->press('Register')
->seePageIs('/home');
}
最初は実行できますがphpunit
、もう一度実行すると、もちろん、既にデータベースにあるため、この電子メールを使用できないというエラーが返されます。
問題は、データベースを単純にリセットできないことです。データベースに既に 12.000 行が挿入されており、アプリケーションにこれらの 12.000 行を挿入する必要があるため、test_database を作成できません。
使用できる情報は見つかりませんでした。「migration::refresh というテスト コールを作成し、テーブルに再度データを入力するために 4 分間送信してください」という情報しか見つかりませんでしたが、より良い情報を見つけることができると確信しています。解決!
また、setUp() メソッドをどこに置き、どこで呼び出すのですか?
ありがとうございました。