我刚刚开始看黄昏 - 而且我正在测试一些用户功能。
以下是我当前的测试,但是我试图在自己之后进行清理 - 例如,新创建的用户应该从数据库中删除。
我尝试使用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();
}
}
}
答案 0 :(得分:2)
有多种方法可以实现这一目标:
use Illuminate\Foundation\Testing\DatabaseTransactions;
并在测试类中添加use DatabaseTransactions;
use Illuminate\Foundation\Testing\DatabaseMigrations;
并在测试类中添加use DatabaseMigrations;
afterApplicationCreated
和beforeApplicationDestroyed
方法
而是注册回调答案 1 :(得分:1)
python -m unittest discover -p "Test*.py"
此代码行<?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();
});
}
}
在测试后删除您的数据。 $user->delete
方法没有用。