Php 在Laravel黄昏测试运行后从数据库中删除模型?
我只是从看黄昏开始——我正在测试一些用户功能 下面是我当前的测试,但是我正在尝试在自己完成后进行清理-例如,新创建的用户应该从数据库中删除 我尝试过使用Php 在Laravel黄昏测试运行后从数据库中删除模型?,php,laravel,phpunit,laravel-dusk,Php,Laravel,Phpunit,Laravel Dusk,我只是从看黄昏开始——我正在测试一些用户功能 下面是我当前的测试,但是我正在尝试在自己完成后进行清理-例如,新创建的用户应该从数据库中删除 我尝试过使用tearDown方法,但实际上似乎并没有删除它 我通常会如何去旋转那些需要被丢弃的临时模型 <?php namespace Tests\Browser; use App\User; use Tests\DuskTestCase; use Illuminate\Foundation\Testing\DatabaseMigrations;
tearDown
方法,但实际上似乎并没有删除它
我通常会如何去旋转那些需要被丢弃的临时模型
<?php
namespace Tests\Browser;
use App\User;
use Tests\DuskTestCase;
use Illuminate\Foundation\Testing\DatabaseMigrations;
class LoginTest extends DuskTestCase
{
protected $user = null;
public function testIfPublicUsersLogin()
{
$this->user = $user = factory(User::class)->create([
'is_student' => 0
]);
$this->browse(function ($browser) use ($user) {
$browser->visit('/login')
->assertVisible('#email')
->type('#email', $user->email)
->type('#password', 'secret')
->press('#loginButton')
->assertPathIs('/play');
});
}
public function tearDown()
{
if ($this->user) {
User::destroy($this->user->id);
//$this->user->delete();
}
}
}
实现这一点有多种方法:
使用DatabaseTransactions特性,以便在每次测试后都有事务回滚。为此,添加:使用illumb\Foundation\Testing\DatabaseTransactions在php文件中添加并使用DatabaseTransactions代码>在测试类中
如果希望在每次测试之前和之后进行迁移和迁移回滚,而不是将它们包装到事务中,则可能需要使用DatabaseMigrations特性。为此,添加:使用illumb\Foundation\Testing\DatabaseMigrations在php文件中添加并使用DatabaseMigrations代码>在测试类中
如果要使用自定义设置和拆卸方法,请使用
应用程序创建后
和应用程序选择前
方法
而是注册回调
<?php
namespace Tests\Browser;
use App\User;
use Tests\DuskTestCase;
use Illuminate\Foundation\Testing\DatabaseMigrations;
class LoginTest extends DuskTestCase
{
protected $user = null;
public function testIfPublicUsersLogin()
{
$this->user = $user = factory(User::class)->create([
'is_student' => 0
]);
$this->browse(function ($browser) use ($user) {
$browser->visit('/login')
->assertVisible('#email')
->type('#email', $user->email)
->type('#password', 'secret')
->press('#loginButton')
->assertPathIs('/play');
$user->delete();
});
}
}