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);
}
}
测试运行正常,但是没有创建示例类“构造函数”!
由于
答案 0 :(得分:5)
单元测试的主要目标是测试接口默认情况下,您应该只测试公共方法及其行为。如果没关系,那么你的课程可以用于外部使用。但有时您需要测试受保护/私有成员 - 然后您可以使用Reflection和setAccessible() method
答案 1 :(得分:0)
创建一个公开要测试的值的派生类。