有没有办法让一个 setUp() 和 tearDown() 方法告诉 laravel “在数据库中进行所有这些插入,但是当你完成所有测试时,删除所有插入而不重置数据库”
我需要做这样的测试:
/** @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 行并且我无法创建 test_database因为我需要将这 12.000 行插入到我的应用程序中才有意义。
我没有找到任何我可以使用的信息,我能找到的只是“让你的测试调用 migration::refresh 并发送 4 分钟以再次填充你的表”,但我确信有可能找到更好的解决方案!
另外,我在哪里放置我的 setUp() 方法,我在哪里调用它?
谢谢你。