PHPUnit :: Как можно __construct с проверенными защищенными переменными? - PullRequest
0 голосов
/ 08 февраля 2011

PhpUnit :: Как можно __constructed с проверенными защищенными переменными?

(не всегда мы должны добавлять открытый метод getVal () - так что без метода add, который возвращает значение защищенной переменной)

Пример:

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

Edit:

также существует проблема для проверки в функции, которая возвращает 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);
     }
 }

тестовый запуск в порядке, но пример класса "constructor" не был создан!

Спасибо

Ответы [ 2 ]

5 голосов
/ 08 февраля 2011

Основной целью модульного тестирования является тестирование интерфейса По умолчанию вы должны тестировать только общедоступные методы и их поведение.Если все в порядке, то ваш класс в порядке для внешнего использования.Но иногда вам нужно протестировать защищенные / закрытые члены - тогда вы можете использовать Reflection и setAccessible () метод

0 голосов
/ 08 февраля 2011

Создайте производный класс, который предоставляет значение, которое вы хотите проверить.

...