PHPUnitManual:9.2

From 흡혈양파의 번역工房
Revision as of 08:56, 2 July 2013 by Onionmixer (talk | contribs) (PHPUnit 9.2 테스트의 생략 페이지 추가)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to 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