我一直试图解耦我的依赖项,以便我可以在一个类中单元测试函数但我遇到了一个问题,我有一个函数循环数据数组并根据数据创建新对象。新对象使用数据自己INSERT
。
我怎么能写这个函数所以我可以模拟在循环中创建的对象?
public function createObjects($array_of_data)
{
$new_objects = [];
foreach($array_of_data as $data)
{
//do some stuff with the data
$new_object = new newObject($data);
$new_object->saveToDB();
$new_objects[] = $new_object;
}
return $new_objects;
}
答案 0 :(得分:1)
我建议创建一个新的工厂类,将该类注入touchDown
方法(或通过该类的构造函数,或通过setter方法),然后模拟该工厂时来测试createObjects()
的时间到了。
这是一个简单的例子。请务必注意createObjects()
方法中的FactoryInterface
类型提示,这样就可以实现所有这些:
YourClass::createObjects()