您当前的位置: 首页 > 慢生活 > 程序人生 网站首页程序人生
phpunit数据库 (DB) 数据集查询
发布时间:2021-09-28 17:36:38编辑:雪饮阅读()
前篇了解了数据集的各种创建,那么这次来了解下如何获取数据集,那么这里的前提是先从例如csv或者什么其它渠道创建数据集到如mysql数据库中。
那么我们这里获取数据集就是从数据库中来获取数据集,顺带一说的就是我们的getConnection的实现对于mysql来说,也可以不完全依赖于phpunit.xml,下面实例中可以看到。
那么getConnection实现了纯php代码去连接mysql数据库以及testGuestbook获取整个mysql数据库的某个库整库为数据集以及testFilteredGuestbook获取某个库的指定某几个表为数据集的实例如:
MySqlGuestbookTest.php:
<?php
use PHPUnit\DbUnit\DataSet\CsvDataSet;
use PHPUnit\Framework\TestCase;
use PHPUnit\DbUnit\TestCaseTrait;
class MySqlGuestbookTest extends TestCase
{
use TestCaseTrait;
/**
* @return PHPUnit_Extensions_Database_DB_IDatabaseConnection
*/
public function getConnection()
{
$database = 'myguestbook';
$user = 'root';
$password = '123456';
$pdo = new PDO('mysql:dbname=myguestbook;host=localhost', $user, $password);
return $this->createDefaultDBConnection($pdo, $database);
}
public function getDataSet()
{
$dataSet = new CsvDataSet();
$dataSet->addTable('guestbook', dirname(__FILE__)."/guestbook.csv");
return $dataSet;
}
public function testGuestbook()
{
$dataSet = $this->getConnection()->createDataSet();
var_dump($dataSet->getTableNames());
}
public function testFilteredGuestbook()
{
$tableNames = ['guestbook','guestbook_copy1'];
$dataSet = $this->getConnection()->createDataSet($tableNames);
var_dump($dataSet->getTableNames());
}
}
?>
use PHPUnit\DbUnit\DataSet\CsvDataSet;
use PHPUnit\Framework\TestCase;
use PHPUnit\DbUnit\TestCaseTrait;
class MySqlGuestbookTest extends TestCase
{
use TestCaseTrait;
/**
* @return PHPUnit_Extensions_Database_DB_IDatabaseConnection
*/
public function getConnection()
{
$database = 'myguestbook';
$user = 'root';
$password = '123456';
$pdo = new PDO('mysql:dbname=myguestbook;host=localhost', $user, $password);
return $this->createDefaultDBConnection($pdo, $database);
}
public function getDataSet()
{
$dataSet = new CsvDataSet();
$dataSet->addTable('guestbook', dirname(__FILE__)."/guestbook.csv");
return $dataSet;
}
public function testGuestbook()
{
$dataSet = $this->getConnection()->createDataSet();
var_dump($dataSet->getTableNames());
}
public function testFilteredGuestbook()
{
$tableNames = ['guestbook','guestbook_copy1'];
$dataSet = $this->getConnection()->createDataSet($tableNames);
var_dump($dataSet->getTableNames());
}
}
?>
最后的运行结果如:
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\MySqlGuestbookTest.php
PHPUnit 7.5.20 by Sebastian Bergmann and contributors.
RC:\Users\Administrator\PhpstormProjects\untitled\organizing\tests\MySqlGuestbookTest.php:31:
array(3) {
[0] =>
string(9) "guestbook"
[1] =>
string(15) "guestbook_copy1"
[2] =>
string(21) "guestbook_copy1_copy1"
}
R 2 / 2 (100%)C:\Users\Administrator\PhpstormProjects\untitled\organizing\tests\MySqlGuestbookTest.php:38:
array(2) {
[0] =>
string(9) "guestbook"
[1] =>
string(15) "guestbook_copy1"
}
Time: 121 ms, Memory: 4.00 MB
There were 2 risky tests:
1) MySqlGuestbookTest::testGuestbook
This test did not perform any assertions
C:\Users\Administrator\PhpstormProjects\untitled\organizing\tests\MySqlGuestbookTest.php:28
2) MySqlGuestbookTest::testFilteredGuestbook
This test did not perform any assertions
C:\Users\Administrator\PhpstormProjects\untitled\organizing\tests\MySqlGuestbookTest.php:34
OK, but incomplete, skipped, or risky tests!
Tests: 2, Assertions: 0, Risky: 2.
关键字词:phpunit,DB,数据集