PHPマニュアル/PEARマニュアル | ユーザフォーラムで議論/質問 | マニュアル検索 | ハイライト | ハイライトオフ | ポータル | php spot

ユニットテスト用の設定 | JavaScript入門&応用&リファレンスなら「JavaScriptist」

  

ユニットテスト用の設定

ユニットテストが外部のサービス (データベースや LDAP サーバ、あるいは企業のウェブサービスなど) に依存することもしばしばあります。 これらのサービスにアクセスするには認証情報が必要となります。 ユーザ名とパスワードの組み合わせや API キーなどです。

こういった機密情報は一般に公開するものではありませんし、 ユニットテスト内にそんな情報を含めてはいけません。 そのかわりに、設定ファイルのテンプレートである config.php.dist を同梱するようにしましょう。 テストを実行するユーザは、このファイルのコピーを作成して config.php という名前で保存し、内容を調整します。

ディレクトリ構成の例


tests/
    config.php.dist
    config.php
 

設定テンプレートの例

<?php
$GLOBALS
['My_Package_UnittestConfig'] = array(
    
'host'     => 'FIXME',
    
'username' => 'FIXME',
    
'password' => 'FIXME',
    
'host'     => 'FIXME',
);
?>

設定ファイルが見つからない場合でも、die() するのではなくユニットテストを続行させなければなりません。 これは、複数のパッケージをまとめて一度にテストする際などに重要となります。

設定ファイルが存在するかどうかは、まず最初にチェックしなければなりません。

設定ファイルが存在するかどうかのチェック

<?php
//...

class My_Package_ClassTest extends PHPUnit_Framework_TestCase
{
    protected 
$configExists null;

    
//...

    
public function __construct($name null)
    {
        
parent::__construct($name);

        
$configFile dirname(__FILE__) . '/config.php';
        
$this->configExists file_exists($configFile);
        if (
$this->configExists) {
            include_once 
$configFile;
        }
    }

    
//...

    
public function setUp()
    {
        if (!
$this->configExists) {
            
$this->markTestSkipped('Unit test configuration is missing.');
        }
        
//...
    
}

    
//...
}
?>
忘却曲線を使ってこの知識を確実に記憶に残す

フォーラムで「ユニットテスト用の設定」について話す
各種マニュアル: PHPマニュアル | PEARマニュアル | Smarty(英語)マニュアル | PHP-GTKマニュアル | ユニットテスト用の設定」をGoogle検索
copyright © 1997-2024 PHP ドキュメント作成グループ(ライセンス). provided by php spot. マニュアル: