Как mock mage_admin_model_session, чтобы использовать метод GetUser?
-
12-12-2019 - |
Вопрос
Я хотел бы проверить метод с другим пользователем администратора, я издевался на сеанс администратора с этим кодом:
$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);
.
Но когда я называю следующую инструкцию
$admin = Mage::getSingleton('admin/session')->getUser();
.
Переменная администратора NULL. В режиме отладки я могу видеть массив почтовых средств внутри
Mage::getSingleton('admin/session')
.
с правильной заглушкой и правильным методономMatcher
Решение
Позвонив
setMethods(null)
.
Вы явно заявляете, что никакие методы не должны быть заменены.Следовательно, последующая инструкция не имеет никакого эффекта.
Попробуйте это вместо этого:
$stubAdminSession = $this->getModelMockBuilder('admin/session')
->disableOriginalConstructor()
->setMethods(array('getUser'))
->getMock();
. Не связан с magento.stackexchange