Foros del Web » Programando para Internet » PHP » Zend »

Duda sobre phpunit y controllerTest

Estas en el tema de Duda sobre phpunit y controllerTest en el foro de Zend en Foros del Web. Pues haciendo algunos test a los controllers me surge una duda. Si tienes un controller con un try catch, hay alguna forma de provocar un ...
  #1 (permalink)  
Antiguo 09/09/2011, 06:28
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 12 años, 11 meses
Puntos: 261
Duda sobre phpunit y controllerTest

Pues haciendo algunos test a los controllers me surge una duda.

Si tienes un controller con un try catch, hay alguna forma de provocar un error desde el controllerTest y testear el error.
O hay que provocarlo en el controller y una vez testeado quitarlo?

En este caso dentro del try está el entityManager de Doctrine.

Saludos y gracias de antemano,
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight
  #2 (permalink)  
Antiguo 09/09/2011, 08:11
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 17 años, 11 meses
Puntos: 2135
Respuesta: Duda sobre phpunit y controllerTest



No toda esa logica debería de estar en un modelo, ya que el modelo es el que engloba a Doctrine, y para el controller este debería de ser transparente si es Zend_Db, o Doctrine o cualquier otro ORM...
  #3 (permalink)  
Antiguo 09/09/2011, 08:28
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Duda sobre phpunit y controllerTest

Porque no lo haces fallar desde el test ?, dependiendo de como lo haz echo puede ser simple o un dolor de cabeza, como tienes montado d2 ?

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #4 (permalink)  
Antiguo 09/09/2011, 12:00
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 12 años, 11 meses
Puntos: 261
Respuesta: Duda sobre phpunit y controllerTest

Hola, gracias por pasar,

A ver si lo puedo resumir.

- Las carpetas están así:
Código:
/application
/library
    /Bisna
    /Doctrine
    /DoctrineExtensions
    /Entities
        /Entity
            /Proxy
            /Repository
            UnEntity.php
    /Symfony
    /Zend
/public
- El application.ini tiene toda la configuración de doctrine.dbal y doctrine.orm, así como los autoloaderNamespace[]

- El bootstrap tiene _initAutoloader() con esto:
Código PHP:
require_once APPLICATION_PATH '/../library/Doctrine/Common/ClassLoader.php';
$autoloader Zend_Loader_Autoloader::getInstance();

$bisnaAutoloader = new DoctrineCommonClassLoader('Bisna');
$autoloader->pushAutoloader(array($bisnaAutoloader'loadClass'), 'Bisna');

$appAutoloader = new DoctrineCommonClassLoader('Entities');
$autoloader->pushAutoloader(array($appAutoloader'loadClass'), 'Entities'); 
- Los Repository tienen las funciones que se encargan de guardar en la DB.
A esto te referías GatorV, a tener las funciones en el modelo?

- Estas funciones son llamadas desde el controller
(Que es la parte que quiero testear en caso de error)
Código PHP:
public function init()
{
    
$this->doctrine Zend_Registry::get('doctrine');
    
$this->entityManager $this->doctrine->getEntityManager();
    
$this->companiesRepository $this->entityManager
                   
->getRepository('\Entities\Entity\UnEntity');

La idea es hacer la validaciones y envolver la parte de doctrine en un try catch
Si genera una excepción alguna parte del código, pasa al catch, el cual registra el error en la db o en un log, redirige y lanza un flashmessenger para avisar al usuario de que algo no ha salido bien.

El testear hasta la función va bien, el tema está en hacer el test del try sin poner el error en el propio controller que estoy testeando.

- Y la parte del controller, create por ejemplo:
Código PHP:
# El namespace lo pongo etre comillas porque no salen en el code.
$unentity = new '\Entities\Entity\UnEntity()';
// La función del Repository
$this->UnEntityRepository->createUnEntity($unentity$form->getValues());
$this->entityManager->flush(); 
Saludos,
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight
  #5 (permalink)  
Antiguo 09/09/2011, 12:48
Avatar de masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 3 meses
Puntos: 845
Respuesta: Duda sobre phpunit y controllerTest

Pero que quieres testar exactamente ? la conexión ?, podrías tirar abajo la bbdd antes de salvar.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)
  #6 (permalink)  
Antiguo 10/09/2011, 10:11
Avatar de Uncontroled_Duck
Colaborador
 
Fecha de Ingreso: mayo-2011
Ubicación: Málaga [Spain]
Mensajes: 806
Antigüedad: 12 años, 11 meses
Puntos: 261
Respuesta: Duda sobre phpunit y controllerTest

Cita:
Iniciado por masterpuppet Ver Mensaje
Pero que quieres testar exactamente ? la conexión ?, podrías tirar abajo la bbdd antes de salvar.

Saludos.
uhm... es una opción, esto implicaría todo el funcionamiento de doctrine no?

Voy a ver si se puede hacer algún tipo de set sobre la configuración de la db y controlarlo desde los test.

Gracias, saludos
__________________
Todos agradeceremos que pongas el código en su respectivo Highlight

Etiquetas: frameworks-y-php-orientado-a-objetos, phpunit
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:11.