Pregunta

¿Cuál sería la forma correcta de la unidad de prueba de una acción del controlador que realiza una redirección?

ACTUALIZACIÓN: Soy un desarrollador principal del proyecto CFWheels. La razón por la que estoy haciendo esta pregunta es que estoy trabajando en la mejora de la incorporada en el marco de pruebas que tenemos y me pregunto sobre cómo abordar e implementar algo como esto en CFWheels para que sea más fácil para los desarrolladores probar sus aplicaciones .

ACTUALIZACIÓN: Me di cuenta de cómo probar esto. parece que vamos a tener que volver a escribir la parte interna del controlador ruedas un poco para llevar a cabo la redirección después de la acción completa y después se pasa de nuevo al despachador. la única cosa con este enfoque es que cualquier código después de la RedirectTo () se corrió SALVO si se toman las precauciones adecuadas antes de mano; esto incluye ya sea poniendo una vuelta después de la declaración RedirectTo () o poner controles condicionales en su acción para aislar el código RedirectTo () desde otro código. También implica asegurarse de que nada más se hace una vez al RedirectTo () se realiza.

¿Fue útil?

Solución

cosas como esta se convierte en mucho más fácil para probar si se rompe aparte del mecanismo de redirección en múltiples funciones: a) una función que determina la dirección URL de destino y b) una función que realiza la redirección

.

De esta manera, se puede probar funciónA muy fácilmente, y funciónA es el que usted desea probar de todos modos. Es el código escribió. Es el lugar donde la lógica es verdadera. FunctionB no es su código; que es tripa ColdFusion, y no hay mucho sentido en CFLocation prueba.

Si usted está en una misión para lograr una cobertura del 100% prueba, entonces usted podría pasar 10 pruebas para funciónA donde ejercer todas las diferentes ramas de la lógica, y luego una prueba para funciónB que ejerce el redireccionamiento de la manera que se Terry sugiere; por lo que de esta manera, se consigue solamente 1 prueba lenta en lugar de 10.

Se puede generalizar este enfoque para usos en otros escenarios: sistemas de archivos, servicios web, HTTP, FTP, correo electrónico, etc: "Extraer las cosas que puede controlar y que desee probar de las cosas que no puede controlar y no hacer querer poner a prueba "

Otros consejos

Se le podría llamar el controlador con la URL apropiada usando cfhttp con redirección se pone a falso. A continuación, probar la estructura resultado cfhttp resultante, se debe tener información sobre la redirección donde le tomaría.

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