📜  assertDatabaseMissing (1)

📅  最后修改于: 2023-12-03 14:59:24.755000             🧑  作者: Mango

PHPUnit方法:assertDatabaseMissing

PHPUnit是一个广泛使用的PHP测试框架,其中包含了大量的断言方法,这些方法帮助测试人员比较期望值和实际值。其中之一是assertDatabaseMissing()方法,它可以用来验证数据库中某个表中是否不存在期望的数据。

语法

assertDatabaseMissing method 有三个必须的参数:

assertDatabaseMissing($table, array $data, $connection = null);

参数说明:

  • $table: 数据库表名。
  • $data: 数据库查询数据。
  • $connection: 数据库连接名称,如果不指定则使用默认连接。
返回值

如果数据确实不存在于指定的数据库表中,则 test 会通过,否则会抛出异常并显示错误消息。

示例代码
  • 测试失败的情况:数据存在

下面的代码测试 user 表中的一行数据是否存在。由于数据确实存在,因此这个测试失败了。

public function testUserExists()
{
    $this->assertDatabaseMissing('users', [
        'name' => 'John',
        'email' => 'john@doe.com',
    ]);
}

如果运行上述代码,将会抛出 PHPUnit\framework\ExpectationFailedException 异常,暗示断言失败。

  • 测试成功的情况:数据不存在

下面的代码测试 user 表中的一行数据是否不存在。由于数据确实不存在,因此这个测试将通过。

public function testUserDoesNotExist()
{
    $this->assertDatabaseMissing('users', [
        'name' => 'foo',
        'email' => 'foo@bar.com',
    ]);
}

如果运行上述代码,测试将会通过。

参考

这是PHPUnit官方文档中assertDatabaseMissing方法的介绍页面:https://phpunit.readthedocs.io/en/8.5/assertions.html#assertdatabasemissing

当需要对数据库中某个表进行断言时,十分实用。