Changes between Version 9 and Version 10 of EC-CUBE標準規約/単体テストガイドライン


Ignore:
Timestamp:
2012/12/16 12:02:06 (10 years ago)
Author:
shift_hiroko.tamagawa
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • EC-CUBE標準規約/単体テストガイドライン

    v9 v10  
    3333 * tests/phpunit.xml.baseをコピーしてtests/phpunit.xmlを作成します。 
    3434 * <filter><blacklist>タグ以下の「/usr/local/lib」の部分を、ローカルで使われる各種ライブラリが含まれているパスと置換します。 
    35   ** この設定はどのファイルをテストのカバレッジ測定の対象にするかを設定するためのものなので、設定をし直さなくても単体テスト自体は問題なく動作します。 
     35  * この設定はどのファイルをテストのカバレッジ測定の対象にするかを設定するためのものなので、設定をし直さなくても単体テスト自体は問題なく動作します。 
    3636 * tests/require.php.baseをコピーしてtests/require.phpを作成します。 
    3737 * PHPUnitのモジュールが使用できるように、インクルードパスを設定します。 
     
    205205== 9. より網羅的にテストを書く方法 == 
    206206=== 1. 定数による条件分岐 === 
     207defineを使って定義されている定数は、テスト中に自由に上書きすることができません。[[BR]] 
     208そこで、定数の値によって条件が分岐する場合は定数の値ごとにテストコードのファイルを分割します。[[BR]] 
     209 * ソースコード 
     210{{{ 
     211#!php 
     212<?php 
     213function sfGetHashString($str, $salt) { 
     214  $res = ''; 
     215  if ($salt == '') { 
     216    $salt = AUTH_MAGIC; 
     217  } 
     218  if (AUTH_TYPE == 'PLAIN') { 
     219    $res = $str; 
     220  } else { 
     221    $res = hash_hmac(PASSWORD_HASH_ALGOS, $str . ':' . AUTH_MAGIC, $salt); 
     222  } 
     223  return $res; 
     224} 
     225}}} 
     226 * テストコード 
     227{{{ 
     228#!php 
     229<?php 
     230$HOME = realpath(dirname(__FILE__)) . "/../../../.."; 
     231// このテスト専用の定数の設定。必ずCommon_TestCase.phpより先に定義する 
     232define('AUTH_TYPE', 'PLAIN'); 
     233require_once($HOME, "/tests/class/Common_TestCase.php"); 
     234 
     235// クラス名に条件(authTypePlain)も含める 
     236class SC_Utils_sfGetHasString_authTypePlainTest extends Common_TestCase { 
     237 
     238  // AUTH_TYPE=PLAINであることを想定した実際のテストコード 
     239} 
     240}}} 
     241このようにCommon_TestCaseより先に指定したい定数を定義することで、このテストクラスに限定した値を定義することができます。 
    207242=== 2. exitする箇所のテスト === 
    208243PHPUnitでテストを行う際には実際にphpのプログラムを走らせることになりますが、[[BR]]