¿Se puede cambiar dinámicamente un dispositivo entre métodos de prueba en CakePHP?

StackOverflow https://stackoverflow.com/questions/37785

  •  09-06-2019
  •  | 
  •  

Pregunta

¿Es posible realizar un cambio de fijación entre los métodos de prueba?Si es así, ¿cómo puedo hacer esto?

Mi sintaxis para este problema:

En el marco cakephp estoy creando pruebas para un comportamiento que se configura agregando campos a la tabla.Esto está destinado a funcionar de la misma manera que agregar los campos "creados" y "modificados" para poblar automáticamente estos campos en Save.

Para probar esto yo podría cree docenas de combinaciones de accesorios/modelos para probar las diferentes configuraciones, pero sería cien veces mejor, más rápido y más fácil hacer que el accesorio cambie de "forma" entre los métodos de prueba.

Si no está familiarizado con el Marco CakePHP, tal vez todavía puedas ayudarme mientras se usa Prueba simple

Editar:pregunta reformulada para ser más general

¿Fue útil?

Solución

No estoy familiarizado específicamente con CakePHP, pero este tipo de cosas parecen suceder en cualquier lugar con los accesorios.

No hay una forma integrada en los rieles al menos para que esto suceda, y me imagino que no en cakePHP ni en ningún otro lugar porque la idea general de un dispositivo es que es fijado

Hay dos soluciones 'decentes' que conozco

  • Escribe un changefixture método, y justo antes de hacer sus afirmaciones/etc, ejecútelo con los parámetros de qué cambiar.Debería ir y actualizar la base de datos o lo que sea necesario hacer.

  • No uses accesorios en absoluto y usa algún tipo de fábrica de objetos o generador de objetos para crear tus objetos cada vez.

Otros consejos

Esta no es una respuesta a mi pregunta, sino una solución a mi ejemplo de problema.

En lugar de usar múltiples dispositivos o cambiarlos, edito las matrices Model::_schema eliminando los campos sin los cuales quería probar.Esto tiene el efecto de que el modelo actúa como si los campos no estuvieran allí, pero no estoy seguro de si se trata de una prueba del 100%.No creo que sea para todos los casos, pero funciona para mi ejemplo.

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