मुझे phpunit में मेरे एंटिटी मैनेजर के साथ कोई समस्या है।सिम्फनी 2 में एंटीटी मैनेजर और phpunit के साथ समस्या
यह मेरी परीक्षा है:
public function testValidChangeEmail()
{
$client = self::createAuthClient('user','password');
$crawler = $client->request('GET', '/user/edit/30');
$crawler = $client->submit($crawler->selectButton('submit')->form(array(
'form[email]' => '[email protected]',
)));
/*
* With this em, this work perfectly
* $em = $client->getContainer()->get('doctrine.orm.entity_manager');
*/
$user = self::$em->getRepository('MyBundle:User')->findUser('[email protected]');
die(var_dump($user->getEmail()));
}
और यह मेरा WebTestCase जो मूल WebTestCase फैली हुई है:
class WebTestCase extends BaseWebTestCase
{
static protected $container;
static protected $em;
static protected function createClient(array $options = array(), array $server = array())
{
$client = parent::createClient($options, $server);
self::$em = $client->getContainer()->get('doctrine.orm.entity_manager');
self::$container = $client->getContainer();
return $client;
}
protected function createAuthClient($user, $pass)
{
return self::createClient(array(), array(
'PHP_AUTH_USER' => $user,
'PHP_AUTH_PW' => $pass,
));
}
आप देख सकते हैं, मैं स्वयं को बदलने :: $ उन्हें जब मैं बनाया मेरी ग्राहक।
मेरे मुद्दा:
अपने परीक्षण में, die()
मुझे पुराने ईमेल और न नया ई-मेल ([email protected]
) जो परीक्षा में पंजीकृत किया गया है दे। हालांकि मेरे डेटाबेस में, मेरे पास [email protected]
सही ढंग से सहेजा गया है।
जब मैं डेटाबेस में अपना उपयोगकर्ता पुनर्प्राप्त करता हूं, तो मैं sefl::$em
का उपयोग करता हूं। अगर मैं टिप्पणियों में $em
का उपयोग करता हूं, तो मैं सही नया ईमेल पुनर्प्राप्त करता हूं।
मुझे समझ नहीं आता क्यों मेरे WebTestCase में, मैं नई इकाई प्रबंधक का उपयोग कर सकते ...
साइड नोट: क्यों पृथ्वी पर तुम मर है (var_dump()), न तो var_dump लौट कुछ भी उपयोगी नहीं है, और न ही आप() मरने के लिए एक परीक्षण के बीच में की जरूरत है चाहिए। – conny