1
어디에서 문제를 찾고 많은 시간을 보냈지 만 찾을 수 없었습니다.phpunit dbunit @dataProvider가 작동하지 않습니다.
"testAdd가 오류를 발생했습니다 : 누락 된 인수"입니다. 테스트를 실행할 때 단순히 dataProvider가 실행되지 않습니다. 나는 dataProvider에 die()를 넣으려고했지만 죽지 않았습니다.
class LabelEntityModelTest extends PHPUnit_Extensions_Database_TestCase
{
private static $connection = NULL;
/**
* @var \CXNS\DB\Connections\Connection
*/
private static $appConnection;
private static $table;
public function __construct()
{
if (self::$connection) {
return;
}
$pdo = new \PDO($GLOBALS['DB_DSN'], $GLOBALS['DB_USER'], $GLOBALS['DB_PASSWD']);
self::$appConnection = new \CXNS\DB\Connections\Connection(array("prefix" => "test_", "driver" => "pdo", "resource" => $pdo));
self::$appConnection->connect();
self::$connection = $this->createDefaultDBConnection($pdo, 'mysql');
self::$table = $this->createXMLDataSet(__DIR__ . '/fixtures/tables.xml');
}
protected function getDataSet()
{
return self::$table;
}
public function getConnection()
{
return self::$connection;
}
public function getAppConnection()
{
return self::$appConnection;
}
/**
* @group onlyThis
* @dataProvider providerAdd
*/
public function testAdd($labelId, $entityId)
{
$lem = new \appLibs\Labels\LabelEntityModel($this->getAppConnection(), "contacts");
$lem->add($labelId, $entityId);
$count = $this->getAppConnection()
->select("id")
->from("label_relationships")
->where("label_id = %i", $labelId)
->where("table_ref_id = %i", $entityId)
->count();
$this->assertEquals(1, $count, "insert failed");
}
public function providerAdd()
{
return array(
array(2, 3),
array(3, 4),
array(3, 4),
array(3, 4),
array(3, 4),
array(3, 4),
array(5, 7)
);
}
}
여러분의 도움에 감사드립니다 :
이
내 코드입니다.
PHPUnit_Extensions_Database_TestCase를 사용하면 아무 문제가 없다고 생각합니다. 데이터베이스 테스팅을 원한다면 필요하기 때문입니다. – artsylar