Je suis en train de commencer avec la mise en place des tests unitaires en utilisant une base de données MySQL et je suis en cours d'exécution dans cette exception:PHPUnit Test Database Exception
DBTest::test__getException()
Argument 1 passed to PHPUnit_Extensions_Database_DataSet_DefaultTableIterator::__construct() must be an array, null given.
Je ne sais pas ce que je pourrais être absent
Mon unité test code:
<?php
class DBTest extends Generic_Tests_DatabaseTestCase {
//...
public function getDataSet() {
$dataSet = $this->createMySQLXMLDataSet(dirname(__FILE__)."/../db/t_enroll_fixtures.xml");
return $dataSet;
}
public function setUp() {
$this->X = $this->getMock('\X\Engine\X');
$this->model = new Model($this->X, 't_users');
$this->className = get_class($this->model);
parent::setUp();
}
public function tearDown() {
$this->X = NULL;
$this->model = NULL;
parent::tearDown();
}
public function testMagicFields() {
$this->getConnection()->addTable('t_enroll');
$this->assertEquals(10, $this->getConnection()->getRowCount('t_enroll'));
}
}
?>
classe Generic_Test_DatabaseTestCase:
<?php
require_once "PHPUnit/Extensions/Database/TestCase.php";
abstract class Generic_Tests_DatabaseTestCase extends PHPUnit_Extensions_Database_TestCase {
// only instantiate pdo once for test clean-up/fixture load
static private $pdo = null;
// only instantiate PHPUnit_Extensions_Database_DB_IDatabaseConnection once per test
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;
}
}
?>
Qu'est-ce qui me manque?
Question connexe: http://stackoverflow.com/questions/4640802/php-testing-models-with-zend-test-phpunit-databasetestcase –
@cillosis Cette question est sur le point concernant le message d'erreur que je reçois, mais le solution pour l'OP apparaît t o être très spécifique à Zend. Pourriez-vous nous éclairer un peu sur la façon dont je pourrais utiliser cette question pour m'aider? –
@LeviHackwith J'ai le même problème et je n'utilise pas Zend. J'ai déjà le nom de la base de données dans mon document XML. Avez-vous trouvé une solution différente, ou est-ce que cela vous a arrangé? Merci. – GreeKatrina