PHPUnit ::如何测试受保护变量的__construct?

时间:2011-02-08 13:41:44

标签: phpunit zend-test

PhpUnit ::如何测试受保护变量__construct?

(并不总是我们应该添加公共方法getVal() - soo而不添加返回受保护变量值的方法)

示例:

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

修改

在返回void

的函数中也存在测试问题

EDIT2:

我们需要测试__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);
     }
 }

测试运行正常,但是没有创建示例类“构造函数”!

由于

2 个答案:

答案 0 :(得分:5)

单元测试的主要目标是测试接口默认情况下,您应该只测试公共方法及其行为。如果没关系,那么你的课程可以用于外部使用。但有时您需要测试受保护/私有成员 - 然后您可以使用Reflection和setAccessible() method

答案 1 :(得分:0)

创建一个公开要测试的值的派生类。