Вы должны реализовать два абстрактных метода — getConnection() и getDataSet(). Первый необходим для установления соединения с базой, второй для заполнения базы таблицами и заполнения собственно таблиц.
Вот как раз заполнение мне и не нужно. Возможно ли без него реализовать?
Вам необходимо объявить все методы абстрактного класса PHPUnit_Extensions_Database_TestCase, в том числе иgetDataSet
Так вроде так и сделано.
И я не хочу использовать функцию getDataSet. Поскольку она таблицу наполняет своими данными. А мне нужно просто получить дынные из таблицы. Возможно ли это сделать средствами dbunit?
<?
require_once 'PHPUnit/Extensions/Database/TestCase.php';
class testMyBase extends PHPUnit_Extensions_Database_TestCase{
protected function getConnection()
{
$pdo = new PDO('mysql:host=1.1.1.1;port=1111;dbname=name_base', 'TTT', '111');
return $this->createDefaultDBConnection($pdo, 'name_base');
}
protected function getDataSet()
{
return $this->createFlatXMLDataSet(dirname(__FILE__).'/test.xml');
}
public function testPerson ()
{
$sql = "SELECT * FROM staffs";
$statement =
$this->getConnection()->getConnection()->query($sql);
$result = $statement->fetchAll(); //данные таблицы, с которыми я потом работаю
...
}
}
Но в данном примере получается, что таблицу partner_types я наполняю данными из test.xml. Если же опустить функцию getDataSet(), то возникает вот такая ошибка:
Fatal error: Class testMyBase contains 1 abstract method and must therefore be declared abstract or implement the remaining methods (PHPUnit_Extensions_Database_TestCase::getDataSet) in /vagrant/www/tests/testMyBase.php on line 4