我在某处读到,将方法分解为更小的、可测试的函数是一个好主意,以便可以测试更小的方法。但是我对如何测试调用较小方法的方法感到困惑。这是一个例子:
class MyTestableClass
{
public function myHugeFunction($list, array $list_filter_params)
{
// do a bunch of stuff, then...
foreach($list as $item) {
$this->subFunction($item);
}
}
public function subFunction()
{
// do stuff for each item
}
}
和测试类:
class MyTestableClassTest extends PHPUnit_Framework_TestCase
{
public function testSubFunction
{
// This tests the smaller, bite-size method, which is good.
}
public function testMyHugeFunction
{
// this tests the parent function *and* the subFunction. I'm trying
// to test *just* the parent function.
}
}
我知道如何测试 subFunction,但是由于我不能在同一个类中存根方法,所以我不知道如何仅测试父方法。我想找到一种以某种方式将 subFunction 存根以返回 true 的方法。
您是否使用事件并存根事件类?这是我能想到的唯一方法来存根在同一个类中调用的另一个方法。