Ну, я новичок в модульном тестировании (с phpUnit) и только начал тестировать один мой класс.
Фактический конструктор выглядит так:
/**
* Loads configuration.
*/
function __construct() {
$config =
Kohana::$config->load('koffee');
$this->_table_name = $config->table_name;
$this->_table_columns = $config->table_columns;
}
Он в основном получает конфигурацию из другого файла и устанавливает его как защищенные свойства для этого объекта.
Вот как выглядит юнит-тест (он еще не закончен и мне нужна помощь):
/**
* Tests that config is loaded and correct.
*/
function testConfigIsLoadedAndCorrect() {
$object = new Model_Article();
$config = Kohana::$config->load('koffee');
// Compare object's **protected** properties to local `$config`. How?!
}
Проблема в том, что свойства защищены, и я не могу получить к ним доступ так просто ...
Возможные решения, которые я вижу на данный момент:
- Изменить видимость свойств (мне это не нравится),
- Добавить так называемые «геттеры» в тест класса I, а не в модульный тест (мне это тоже не нравится);
Возможно, это смешно для вас, но, как я уже сказал, я новичок в юнит-тестах. Любая помощь высоко ценится.