阅读(2106) (10)

Laravel 8 可用的断言方法

2021-07-08 16:55:49 更新

Laravel 为你的 PHPUnit 功能测试提供了几个数据库断言方法:

方法 描述
$this->assertDatabaseCount($table, int $count); 断言数据表包含给定数量的实体。
$this->assertDatabaseHas($table, array $data); 断言数据表包含给定数据。
$this->assertDatabaseMissing($table, array $data); 断言数据表不包含给定数据。
$this->assertDeleted($table, array $data); 断言给定记录是否被删除。
$this->assertSoftDeleted($table, array $data); 断言给定记录已经被软删除。

为方便起见,你可以传递一个模型实例到 assertDeletedassertSoftDeleted 函数来断言对应数据库记录是否被删除或软删除,底层依据的是模型主键与数据表记录建立关联。

举个例子,如果你在你的测试中使用了一个模型工厂,你可以传入这个其中一个模式来帮助测试你的应用是否正确的删除了数据库的记录:

public function testDatabase()
{
    $user = User::factory()->create();

    // 调用这个程序...

    $this->assertDeleted($user);
}