Comment se moquer MAGE_ADMIN_MODEL_SESSION POUR UTILISER METHODE GETUser?
-
12-12-2019 - |
Question
J'aimerais tester une méthode avec un utilisateur administrateur différent, je me suis moqué de la session d'administration avec ce code:
$stubAdminSession = $this->getModelMockBuilder('admin/session')
->disableOriginalConstructor()
->setMethods(null)
->getMock();
$stubAdminSession->expects($this->any())
->method('getUser')
->will($this->returnValue(Mage::getModel('admin/user')->load($data['user_id'])));
$this->replaceByMock('singleton','admin/session', $stubAdminSession);
mais quand j'appelle les instructions suivantes
$admin = Mage::getSingleton('admin/session')->getUser();
La variable d'administration est null. En mode de débogage, je peux voir le tableau des correspondants à l'intérieur de la
Mage::getSingleton('admin/session')
avec un talon correct et la méthode correcte
La solution
en appelant
setMethods(null)
Vous indiquez explicitement qu'aucune méthode ne devrait être remplacée.Par conséquent, l'instruction ultérieure n'a aucun effet.
Essayez cela à la place:
$stubAdminSession = $this->getModelMockBuilder('admin/session')
->disableOriginalConstructor()
->setMethods(array('getUser'))
->getMock();
Licencié sous: CC-BY-SA avec attribution
Non affilié à magento.stackexchange