php – 如何测试设置受保护属性的构造函数?
发布时间:2020-12-13 22:03:05 所属栏目:PHP教程 来源:网络整理
导读:好吧,我是单位测试新手(使用phpUnit),刚开始测试我的一类. 实际构造函数如下所示: /** * Loads configuration. */function __construct() { $config = Kohana::$config-load('koffee'); $this-_table_name = $config-table_name; $this-_table_columns = $c
好吧,我是单位测试新手(使用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?! } 问题是属性受到保护,我无法轻易访问它们…… 我目前看到的可能的解决方案: >改变属性的可见性(我不喜欢这个), 可能这对你很有意思,但是,正如我所说,我是单位测试的新手.任何帮助非常感谢. 解决方法
单元测试是关于单元测试.受保护的成员不是单元的公共接口的一部分,这是编写单元测试时应该关注的所有内容.
您不测试单元的内部内部,但它可以按预期工作. 如果您不想这样做,可以使用Serialization-Docs,casting to array和Reflection-Docs检查对象的受保护/私有属性或执行对象的受保护/私有方法. 另见:PhpUnit private method testingSO Q&A (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |