PHPUnitManual:9.2

From 흡혈양파의 번역工房
Jump to: navigation, search
9.2 테스트의 생략

모든 테스트가 모든 환경에서 실행 가능하지는 않습니다. 예를 들어, 데이터베이스 추상화 레이어를 통해 다양한 드라이버를 사용하여 다양한 데이터베이스 시스템을 서포트하는 경우를 생각해 봅시다. MySQL 드라이버를 테스트할 수 있는 것은, 당연하게도 MySQL 서버를 사용할 수 있는 환경 뿐입니다.


예9.2 "테스트의 생략" 의 테스트 케이스 클래스 DatabaseTest 에는 테스트 메소드 testConnection() 가 포함되어 있습니다. 이 클래스의 템플릿 메소드 setUp() 은, MySQLi 확장 모듈이 사용 가능한지를 조사한 뒤에, 사용할 수 없는 경우에는 markTestSkipped() 메소드의 테스트를 생략하도록 하고 있습니다.


예9.2 테스트의 생략

<?php
class DatabaseTest extends PHPUnit_Framework_TestCase
{
    protected function setUp()
    {
        if (!extension_loaded('mysqli')) {
            $this->markTestSkipped(
              'MySQLi 확장 모듈을 사용할 수 없습니다.'
            );
        }
    }
 
    public function testConnection()
    {
        // ...
    }
}
?>


생략된 테스트는, PHPUnit command-line test runner 에서 S 로 표시됩니다.

phpunit --verbose DatabaseTest
PHPUnit 3.7.0 by Sebastian Bergmann.

S

Time: 0 seconds, Memory: 3.75Mb

There was 1 skipped test:

1) DatabaseTest::testConnection
The MySQLi extension is not available.

/home/sb/DatabaseTest.php:9
OK, but incomplete or skipped tests!
Tests: 1, Assertions: 0, Skipped: 1.


표9.2 "테스트를 생략하기 위한 API" 는 테스트를 생략하기 위한 API 입니다.


Notes