【发布时间】:2012-01-28 16:55:28
【问题描述】:
嗯,我是单元测试新手(使用 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?!
}
问题是属性受到保护,我不能那么容易地访问它们......
我目前看到的可能解决方案:
- 更改属性的可见性(我不喜欢这样),
- 在我测试的类中添加所谓的“getter”——不是单元测试(我也不喜欢这个);
您可能觉得这很有趣,但是,正如我所说,我是单元测试的新手。非常感谢任何帮助。
【问题讨论】:
-
你还没有写出你真正想要测试的什么以及你认为有问题的为什么。
-
我想将对象的 protected 属性与测试中所写的本地
$config进行比较。
标签: php unit-testing kohana phpunit visibility