您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
phpunit数据库断言-断言表的行数
发布时间:2021-09-28 22:45:21编辑:雪饮阅读()
断言表的行数其实利用了getConnection返回对象中的getRowCount函数。
另外就是phpunit本来的assertEquals。
那么具体的实现如:
GuestbookTest.php:
<?php
use PHPUnit\DbUnit\DataSet\CsvDataSet;
use PHPUnit\Framework\TestCase;
use PHPUnit\DbUnit\TestCaseTrait;
class GuestbookTest extends TestCase
{
use TestCaseTrait;
static private $pdo = null;
private $conn = null;
final public function getConnection()
{
if ($this->conn === null) {
if (self::$pdo == null) {
self::$pdo = new PDO( $GLOBALS['DB_DSN'], $GLOBALS['DB_USER'], $GLOBALS['DB_PASSWD'] );
}
$this->conn = $this->createDefaultDBConnection(self::$pdo, $GLOBALS['DB_DBNAME']);
}
return $this->conn;
}
public function getDataSet()
{
$dataSet = new CsvDataSet();
$dataSet->addTable('guestbook', dirname(__FILE__)."/guestbook.csv");
return $dataSet;
}
public function testAddEntry()
{
//assertEquals()函数是PHPUnit中的内置函数,用于断言实际获得的值是否等于预期值。如果期望值与实际值相同,则此断言将返回true,否则返回false。
/*
* 参数:该函数接受三个参数,如上面的语法所示。参数说明如下:
$expected:该参数可以是代表期望数据。
$actual:此参数可以是代表实际数据。
$message:此参数采用字符串值。当测试用例失败时,此字符串消息将显示为错误消息。
* */
$this->assertEquals(2, $this->getConnection()->getRowCount('guestbook'), "Pre-Condition");
$sql = "INSERT guestbook (content,user) VALUES ('ai','first')";
self::$pdo->exec($sql);
$this->assertEquals(3, $this->getConnection()->getRowCount('guestbook'), "Inserting failed");
}
}
?>
use PHPUnit\DbUnit\DataSet\CsvDataSet;
use PHPUnit\Framework\TestCase;
use PHPUnit\DbUnit\TestCaseTrait;
class GuestbookTest extends TestCase
{
use TestCaseTrait;
static private $pdo = null;
private $conn = null;
final public function getConnection()
{
if ($this->conn === null) {
if (self::$pdo == null) {
self::$pdo = new PDO( $GLOBALS['DB_DSN'], $GLOBALS['DB_USER'], $GLOBALS['DB_PASSWD'] );
}
$this->conn = $this->createDefaultDBConnection(self::$pdo, $GLOBALS['DB_DBNAME']);
}
return $this->conn;
}
public function getDataSet()
{
$dataSet = new CsvDataSet();
$dataSet->addTable('guestbook', dirname(__FILE__)."/guestbook.csv");
return $dataSet;
}
public function testAddEntry()
{
//assertEquals()函数是PHPUnit中的内置函数,用于断言实际获得的值是否等于预期值。如果期望值与实际值相同,则此断言将返回true,否则返回false。
/*
* 参数:该函数接受三个参数,如上面的语法所示。参数说明如下:
$expected:该参数可以是代表期望数据。
$actual:此参数可以是代表实际数据。
$message:此参数采用字符串值。当测试用例失败时,此字符串消息将显示为错误消息。
* */
$this->assertEquals(2, $this->getConnection()->getRowCount('guestbook'), "Pre-Condition");
$sql = "INSERT guestbook (content,user) VALUES ('ai','first')";
self::$pdo->exec($sql);
$this->assertEquals(3, $this->getConnection()->getRowCount('guestbook'), "Inserting failed");
}
}
?>
运行结果如:
C:\Users\Administrator>D:\phpstudy_pro\Extensions\php\php7.3.4nts\php.exe C:\Users\Administrator\PhpstormProjects\untitled\vendor\phpunit\phpunit\phpunit -c C:\Users\Administrator\PhpstormProjects\untitled\organizing\phpunit.xml C:\Users\Administrator\PhpstormProjects\untitled\organizing\tests\GuestbookTest.php
PHPUnit 7.5.20 by Sebastian Bergmann and contributors.
. 1 / 1 (100%)
Time: 80 ms, Memory: 4.00 MB
OK (1 test, 2 assertions)
这里需要注意guestbook表必须主键自增
关键字词:phpunit,数据库,断言