0

PhpUnit::保護された変数を使用して__constructをテストするにはどうすればよいですか?

(常に public メソッド getVal() を追加する必要があるとは限りません。保護された変数値を返すメソッドを追加しないでください)

例:

  class Example{
    protected $_val=null;
    function __construct($val){
      $this->_val=md5 ($val);
    }
   }

編集:

voidを返す関数でテストする問題も存在します


編集2:

テスト __construct が必要な理由の例:

class Example{
        protected $_val=null;
       //user write _constract instead __construct
        function _constract($val){
          $this->_val=md5 ($val);
        }

       function getLen($value){
         return strlen($value);
       }
 }

 class ExampleTest extends PHPUnit_Framework_TestCase{
     test_getLen(){
       $ob=new Example();//call to __construct and not to _constract
        $this->assertEquals( $ob->getLen('1234'), 4);
     }
 }

テストは正常に実行されましたが、サンプル クラス「コンストラクタ」が作成されませんでした。

ありがとう

4

2 に答える 2

4

単体テストの主な目的は、インターフェイスをテストすることです。既定では、パブリック メソッドとその動作のみをテストする必要があります。問題がなければ、クラスは外部で使用しても問題ありません。ただし、保護された/プライベートメンバーをテストする必要がある場合があります-その後、リフレクションとsetAccessible() メソッドを使用できます

于 2011-02-08T13:47:09.150 に答える
0

テストする値を公開する派生クラスを作成します。

于 2011-02-08T13:45:23.653 に答える