Pregunta

Estoy interesado en las pruebas unitarias en Magento y he comenzado a mirar el módulo Ecomdev.

Sin embargo, no creo que sea posible hacer TDD completo con Magento. Para los siguientes escenarios, ¿cómo realizarías TDD?

  1. Actualizar scripts en general
  2. Actualizar específicamente los scripts agregando atributos del producto y los gustos
  3. Sistema XML y almacenar valores de configuración
  4. Reescrituras de núcleo
  5. Controladores
  6. etcétera etcétera.

Creo que hay muchos escenarios en los que no puedes realizar TDD en Magento. ¿Estoy equivocado?

¿Cómo están otras personas pruebas unitarias/TDD usando Magento?

¿Fue útil?

Solución

Las pruebas son difíciles en Magento debido a la estructura y al diseño "malo". No me malinterpreten, el diseño es excelente, si me preguntas, pero no fue diseñado para probar. Los singletons son un no-go para el código comprobable.

Dicho esto, puedes hacer muchas cosas con ecomdev_phpunit:

Actualizar scripts en general

Probar los scripts de actualización, ya sea que funcionen o no, es difícil. (AFAIK) Los scripts se ejecutan antes de las pruebas, por lo que puede probar los resultados. ¿Existe un atributo o fue una tabla creada? Puede verificar que la versión de su módulo sea correcta y que los scripts existe. Lo que no puede hacer (en mi opinión) es verificar la lógica en el script.

Actualizar específicamente los scripts agregando atributos del producto y los gustos

Como dije anteriormente, creo que esto es fácil de probar. Simplemente pruebe si las cosas suceden o no suceden.

Sistema XML y almacenar valores de configuración

Puede verificar los valores de configuración. Y puede escribir pruebas de controlador para verificar la salida de los controladores. Por lo tanto, puede verificar si el valor de configuración predeterminado (o la de la base de datos) es correcto y puede verificar si la configuración de System.xml y los campos de formulario se hacen eco.

Reescrituras de núcleo

No estoy seguro de lo que quieres decir aquí.

Has comprobado \EcomDev_PHPUnit_Test_Case_Config::assertModelAlias, assertBlockAlias, etc.? Pasas core/encryption a él y afirmar la clase esperada, por ejemplo Ikonoshirt_Pbkdf2_Model_Stub_CE. Si su reescritura funciona, la prueba pasa. Si tiene dos reescrituras competitivas, una de las pruebas falla.

Controladores

Echar un vistazo a \EcomDev_PHPUnit_Test_Case_Controller.

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