说我有这个班:
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实例,这将以某种方式测试类本身,而不仅仅是方法。
什么是好方法?
答案 0 :(得分:1)
“单元测试”中的“单位”最好被认为是班级本身。您应该能够广泛地重构类的内部实现,同时保持其公共API不变,而不会破坏您的测试。事实上,这基本上就是他们的目的:允许你对单位的实施进行更改,如果你从角度改变了它的工作方式,你就会被告知知识的安全性系统中的其他类。