0

说我有这门课:

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,我将不得不创建几个具有不同值的 MyExample 实例,$my_var这将以某种方式测试类本身,而不仅仅是方法。

什么是好方法?

4

1 回答 1

1

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

于 2013-01-27T20:59:18.063 回答