📅  最后修改于: 2023-12-03 14:59:24.755000             🧑  作者: Mango
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
当需要对数据库中某个表进行断言时,十分实用。