Php 单元测试魔术方法
当谈到PHP中magic方法的单元测试实现时,推荐使用什么方法来调用这些方法 我认为有三种选择:Php 单元测试魔术方法,php,unit-testing,phpunit,Php,Unit Testing,Phpunit,当谈到PHP中magic方法的单元测试实现时,推荐使用什么方法来调用这些方法 我认为有三种选择: 显式/直接调用它们: $object->uu get('someValue') 间接调用它们(使用任何旨在触发它们的操作): $object->someValue;\\其中实现了uu get()。 使用这两种方法调用它们 是否有单元测试老手能够解释哪些(如果有的话)是显而易见的选择,以及为什么会这样 (这可能是接近主观/辩论的领域,但我希望在解决这个问题时,我希望有一些普遍接受的原则。)<
- 显式/直接调用它们:
$object->uu get('someValue')代码>
- 间接调用它们(使用任何旨在触发它们的操作):
$object->someValue;\\其中实现了uu get()。
- 使用这两种方法调用它们
(这可能是接近主观/辩论的领域,但我希望在解决这个问题时,我希望有一些普遍接受的原则。)< P> > P>你应该测试可观察的行为。因此,毫无疑问,必须测试第二个(
$obj->property
)
至于直接呼叫getter,这更像是一种判断。一旦你说了
\u get('someProperty')
,在我看来,你几乎已经一成不变地认为它是一种神奇的属性。由于我试图从不更改测试,如果出于某种原因,我希望它是一个普通的、古老的非魔法属性,那么这会使事情变得复杂一些。另一方面,您可以调用getter,以另一种方式获取属性,并确保它们都具有完全相同的结果。我不是专家,但第一种方法似乎会导致更好的(自我)记录测试。