PHP类方法中的单元测试 - 具有类属性的依赖性?

时间:2012-11-11 09:16:37

标签: php unit-testing class

说我有这个班:

class MyExample
{
   public $my_var = [1,2,3,4];

   public function MyMethod() 
   {
     //Here I use $this->my_var;
   }
}

考虑到我在其中使用类属性$ my_var,测试MyMethod方法的好方法是什么。你会建议将类属性作为参数传递给方法吗?所以我可以“给出论据,得到结果”的方法吗?:

  public function MyMethod($my_var) 
   {
     //Here I use $my_var;
   }

我有一种感觉,如果我不这样做,如果我想测试MyMethod,我将不得不创建几个具有不同$my_var值的MyExample实例,这将以某种方式测试类本身,而不仅仅是方法。

什么是好方法?

1 个答案:

答案 0 :(得分:1)

“单元测试”中的“单位”最好被认为是班级本身。您应该能够广泛地重构类的内部实现,同时保持其公共API不变,而不会破坏您的测试。事实上,这基本上就是他们的目的:允许你对单位的实施进行更改,如果你从角度改变了它的工作方式,你就会被告知知识的安全性系统中的其他类