Я только начинаю смотреть на Dusk — и тестирую некоторые пользовательские функции.
Ниже приведен мой текущий тест, однако я пытаюсь очистить после себя — например, недавно созданный пользователь должен быть удален из базы данных, что он сделал.
Я пытался использовать 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();
}
}
}
Есть несколько способов добиться этого:
use Illuminate\Foundation\Testing\DatabaseTransactions;
в вашем php файле и добавьте use DatabaseTransactions;
в вашем тестовом классеuse Illuminate\Foundation\Testing\DatabaseMigrations;
в вашем php файле и добавьте use DatabaseMigrations;
в вашем тестовом классеafterApplicationCreated
а также beforeApplicationDestroyed
методыДругих решений пока нет …