测试Symfony Doctrine连接重置的最佳实践

时间:2016-09-14 18:40:06

标签: php unit-testing doctrine-orm symfony

我正在寻找有关如何采用以下方法进行测试的最佳方法的建议。我应该嘲笑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对象的模拟版本,并创建了ConfigurationEventManager个对象的模拟。

我有一个测试,检查异常是否触发;但我想建立一些更好的测试,以便在新数据库不存在时实际检查异常是否触发;模拟似乎不够稳定,无法对此进行测试......

想法?

0 个答案:

没有答案