PHPUnitManual:8.6

From 흡혈양파의 번역工房
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'));
    }
}


Notes