我为此功能创建了一个测试:
public function userRegistrationDatabase(String $email, String $keyRockId): object
{
$entityManager = $this->getDoctrine()->getManager("gui");
$user = new User();
$user->setUserName($email);
$user->setEmail($email);
$user->setEnabled(true);
$userRole = ['ROLE_USER','ROLE_ADMIN'];
$user->addRole(implode(",",$userRole));
$user->setKeyrockId($keyRockId);
$entityManager->persist($user);
$entityManager->flush();
return $user;
}
我还创建了一个仅用于测试目的的 sqlite 数据库。问题是:在测试期间如何切换要使用的db?这是测试:
public function testUserRegistrationDatabase()
{
$userManager = self::$kernel->getContainer()
->get('test.'. UserManagement::class);
$mail = 'notexistinguser@mail.com';
$keyRockId = '45091fd63a1';
$user = $userManager->userRegistrationDatabase($mail,$keyRockId);
}
我想使用的数据库是:
self::$kernel->getContainer()
->get('doctrine')
->getManager('test_gui');
所以基本上函数使用getManager("gui")但在测试中我想使用getManager("test_gui").