PHPUnit_Extensions_Database_Testcase возвращает неопределенный метод

Я получаю фатальную ошибку: вызов неопределенного метода PHPUnit_Extensions_Database_DB_DefaultDatabaseConnection :: prepare () в тесте phpunit, где я готовлю оператор PDO. Если соединение с базой данных по умолчанию является копией объекта pdo, который успешно соединяется, не будет ли у него доступ к его методам?

Мой класс и рассматриваемая функция:

class User
{
protected $db;

public function __construct($db)
{
$this->db = $db;
}

public function deleteItem($itemId)
{
$sql = "DELETE FROM Users WHERE id = ?";
$sth = $this->db->prepare($sql);//this is the failed line works on other tests
return $sth->execute(array($itemId));
}

Мой тест:

class RosterDBTest extends PHPUnit_Extensions_Database_Testcase
{

public function getConnection()
{
$pdo = new PDO('mysql:host=localhost;dbname=users','root','root');
return $this->createDefaultDBConnection($pdo,"users");
}

public function getDataSet()
{
return $this->createFlatXMLDataset(
dirname(__FILE__) . '/users.xml');
}

public function setup()
{
$this->db = $this->getConnection();
}

public function testRemoveUser()
{
$testUser = new User($this->db);
$expectedUsers = 123;
$testUser->deleteItem(91);
$totalUsers = $testUsers->getAllUsers();
$this->assertEquals( $expectedUsers,count($totalUsers), 'Did not delete User 91' );
}

1

Решение

Я только что застрял на аналогичной проблеме, где у меня был мой абстрактный класс тестового класса базы данных. Решил это, изменив

public function setup()
{
$this->db = $this->getConnection();
}

в

public function setup()
{
$this->db = $this->getConnection()->getConnection();
}

Не уверен, поможет ли это в этом, но, надеюсь, поможет кому-то.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]