【发布时间】:2015-11-05 20:40:28
【问题描述】:
是否可以使用 PHP Mockery 模拟受保护的属性?
我有一个带有方法的类,我将其命名为 `a,它对从同一类的受保护属性中检索到的数组执行一些魔法。
该受保护属性由同一类中的另一个方法 b 填充。
我想通过模拟受保护的属性来测试方法a,这样我就不必首先对方法b 进行分类。
那么这可能吗?如果不是,我应该重构我的代码吗?还是有其他方法(考虑最佳实践)。
【问题讨论】:
-
尝试使用反射
-
我(当然)做了谷歌,这确实是第一件事。但这感觉有点“骇人听闻”。我也想知道如何将它与部分模拟混合。
-
如果感觉很骇人,那么重构你的代码。我不完全确定你想做什么,但反射通常是当你不知道类属性是什么时动态读取它们的方法。
-
如果您想模拟私有或受保护的方法,而您的代码看起来很糟糕,请尝试重构它。
标签: php mocking phpunit protected mockery