一个单元测试函数如何在循环中创建对象?

时间:2015-12-16 23:54:05

标签: php unit-testing

我一直试图解耦我的依赖项,以便我可以在一个类中单元测试函数但我遇到了一个问题,我有一个函数循环数据数组并根据数据创建新对象。新对象使用数据自己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;
}

1 个答案:

答案 0 :(得分:1)

我建议创建一个新的工厂类,将该类注入touchDown方法(或通过该类的构造函数,或通过setter方法),然后模拟该工厂时来测试createObjects()的时间到了。

这是一个简单的例子。请务必注意createObjects()方法中的FactoryInterface类型提示,这样就可以实现所有这些:

YourClass::createObjects()