PHPUnitManual:8.6
Jump to navigation
Jump to search
- 8.6 Connection API
Connection 인터페이스에는, 3종류의 흥미로운 메소드가 준비되어 있습니다. 이 인터페이스는 데이터베이스 테스트 케이스의 getConnection() 메소드를 반환합니다.
interface PHPUnit_Extensions_Database_DB_IDatabaseConnection
{
public function createDataSet(Array $tableNames = NULL);
public function createQueryTable($resultName, $sql);
public function getRowCount($tableName, $whereClause = NULL);
// ...
}
1. createDataSet() 메소드는, Database (DB) dataset 을 작성합니다. 이는 "dataset 의 구현" 절에서 설명한 것입니다.
class ConnectionTest extends PHPUnit_Extensions_Database_TestCase
{
public function testCreateDataSet()
{
$tableNames = array('guestbook');
$dataSet = $this->getConnection()->createDataSet();
}
}
2. createQueryTable() 메소드를 사용하여 QuryTable 인스턴스를 만들 수 있습니다. 인수로는 결과의 이름과 SQL query 를 넘깁니다. 이는 다음 절 (데이터베이스 검증 API) 에서 설명할 결과나 테이블의 검증에 유용한 메소드입니다.
class ConnectionTest extends PHPUnit_Extensions_Database_TestCase
{
public function testCreateQueryTable()
{
$tableNames = array('guestbook');
$queryTable = $this->getConnection()->createQueryTable('guestbook', 'SELECT * FROM guestbook');
}
}
3. getRowCount() 는 테이블 안의 row 수를 간단히 얻기 위한 메소드입니다. 옵션으로 where 구문을 사용한 필터링도 가능합니다. 이를 이용하여 간단한 동일성 검증도 가능합니다.
class ConnectionTest extends PHPUnit_Extensions_Database_TestCase
{
public function testGetRowCount()
{
$this->assertEquals(2, $this->getConnection()->getRowCount('guestbook'));
}
}