我正在寻找有关如何采用以下方法进行测试的最佳方法的建议。我应该嘲笑EntityManager
,还是传递一个真实的EntityManager
?
对不起,如果这是基本测试;但我对测试很新,并且真的想做得对。
/**
* @param EntityManager $em
* @param $dbName
* @param $dbUser
* @param $dbPassword
*
* @throws \Exception
*/
public function resetConnection($em, $dbName, $dbUser, $dbPassword)
{
try {
$conn = array(
'driver' => 'pdo_mysql',
'user' => $dbUser,
'password' => $dbPassword,
'dbname' => $dbName
);
$new = \Doctrine\ORM\EntityManager::create(
$conn,
$em->getConfiguration(),
$em->getEventManager()
);
return $new;
}
catch (\Exception $e) {
throw $e;
}
return false;
}
目前,我构建了EntityManager
对象的模拟版本,并创建了Configuration
和EventManager
个对象的模拟。
我有一个测试,检查异常是否触发;但我想建立一些更好的测试,以便在新数据库不存在时实际检查异常是否触发;模拟似乎不够稳定,无法对此进行测试......
想法?