PHPUnitManual:9.2
- 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 입니다.
메소드 | 의미 |
void markTestSkipped() 현재의 테스트를 생략합니다. | |
void markTestSkipped(string $message) 현재의 테스트를 생략하고 $message 를 사용하여 설명을 추가. | |
표9.2 테스트를 생략하기 위한 API |