PHPUnitManual:8.6

From 흡혈양파의 번역工房
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
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