Pregunta

Me gustaría probar un método con diferentes administradores, me burlé de la sesión de administración con este código:

$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);

pero cuando llamo la instrucción de seguimiento

$admin = Mage::getSingleton('admin/session')->getUser();

La variable de administración es nula. En el modo de depuración, puedo ver la matriz de matrones dentro de la

Mage::getSingleton('admin/session')

con el trozo correcto y el METHNAMEmatcher correcto

¿Fue útil?

Solución

llamando

setMethods(null)

Indica explícitamente que no se deben reemplazar ningún método.Por lo tanto, la instrucción posterior no tiene efecto.

Intente esto en lugar:

$stubAdminSession = $this->getModelMockBuilder('admin/session')
        ->disableOriginalConstructor()
        ->setMethods(array('getUser'))
        ->getMock();

Licenciado bajo: CC-BY-SA con atribución
No afiliado a magento.stackexchange
scroll top