Bien, así que vamos a ejecutar esa aplicación en segundo plano todo el tiempo. Bien, así que es un TodoMVC porque esa es la aplicación más difícil, casi la aplicación más difícil que sé cómo codificar. Si tienes vista, puedes ver la interacción de la vista. Realmente no importa cómo se implemente la aplicación. Podemos ejecutar el CSS prácticamente contra cualquier implementación porque Cypress no se preocupa por los detalles de la permutación, ¿verdad? Lo hace el navegador, lo hace la interfaz de usuario, ¿verdad? Pero al usuario no le importa cómo está implementado. Entonces, ¿por qué debería importarle a Cypress?
Bien, abramos DevTools. Así que lo primero que queremos saber de inmediato es qué sucede cuando trabajamos con la implementación, como esta aplicación, ¿verdad? Así que lo que suelo tratar de observar son como cuáles son las llamadas de red que ocurren cuando la aplicación se carga, ¿verdad? Así que puedo recargar y ver qué obtenemos en el documento, obtenemos un montón de, ya sabes, scripts, ¿verdad? Y al final, nuestra aplicación está haciendo una llamada AJAX, así que podemos inspeccionarla. Así que nuestra aplicación está haciendo un GET a todos, ¿verdad? Y obtiene una lista vacía, porque no hay todos. Así que dentro de una página, tenemos como un marcado estándar, ¿verdad? Tenemos clases para la sección principal. Tenemos un encabezado, ahí es donde probablemente tendremos el cuadro de entrada, y cuando simplemente jugamos todos en una lista desordenada. Y así para cada todo, simplemente lo mostraremos en la pantalla. Así que ese es nuestro marcado. Puedes echar un vistazo a todo.mvc.app.js, tiene una tienda de vistas, pero son detalles de implementación. Realmente no me importa. Pero tengo una pregunta para ti, ¿verdad? Mi audiencia. Entonces, ¿qué sucede cuando agregas un nuevo elemento todo? Así que puedes hacerlo tú mismo. Escribamos, ya sabes, primero por hacer. Bien, así que cuando presionamos Enter, puedes ver que hay otra llamada que la aplicación está haciendo, y es un POST, ¿verdad? Así que envía algo al endpoint de todos, ¿verdad? El servidor responde con 201, lo que significa que se creó un nuevo elemento. ¿Y qué envía la aplicación? Bueno, envía el todo. Y nota que la aplicación envía el título, ¿verdad? Que es primero por hacer completado falso. Así que por defecto, cada elemento está incompleto y el frontend también envía el ID. Así que la aplicación está creando el ID para la aplicación, para el elemento por hacer, y lo envía, ¿verdad? Así que ni siquiera es del lado del servidor, es solo del lado del cliente. Y si enviamos el segundo todo, ¿verdad? Puedo ver otra llamada, bien, otro ID, otro elemento. ¿Y qué sucede cuando recargamos? Bien, podemos ver que los elementos regresaron. Podemos ver que esta llamada original para obtener todos, ¿verdad? recupera los elementos. Así que la aplicación, cuando comienza, recupera los elementos. Bien, así es como funciona. Así que llega al servidor usando llamadas Ajax. Ahora aquí hay otra pregunta, pero deberías mirar localmente. Quieres averiguar dónde se almacenaron los elementos. Así que para esto, cambiaré a mi editor de código. Bien, así que puedes usar cualquier editor de código, ¿verdad? Pero me encanta VS Code hoy en día. Así que es tan simple. Kareem, no, la presentación no es privada. Así que si vas al código, está bien, puedes seguir si te pierdes o si quieres pasar más tiempo, puedes tomar este enlace y simplemente hacer clic en cualquiera de los enlaces. Así que ahora mismo estoy en la introducción. Bien, así que busquemos dónde la aplicación guarda los datos. Bien, así que los envía, los almacena, y luego cuando recargamos, podemos ver los datos nuevamente. Así que tiene que almacenarse en algún lugar. Bien, si tienes problemas para ejecutar la aplicación, asegúrate de tener la versión correcta de Node, al menos 12, está bien, y que puedes ejecutar npm start. Una cosa, podría ser porque esto está usando, ¿dónde está nuestro inicio, si tienes problemas, tal vez ve directamente a la subcarpeta todo.nvc y haz npm start allí. Asegúrate de hacer npm install primero. Así que si en mi editor de texto, si miro alrededor, ¿verdad? y voy a todo.nvc, puedo ver este archivo data JSON. Bien, y sí, Martin, tienes razón. No lo estoy ignorando porque generalmente comienza con un archivo simple y vacío. Bien, así que aquí es donde mi servidor está almacenando los datos. Verifiquémoslo. Veamos, ¿es data JSON? Bien, así que sí, ahí es donde está. Sí, sí, Lindsey, intenta instalar las dependencias nuevamente e intenta iniciar en el uno. Bien, Nikolai, si tienes una aplicación Grafana, ese no soy yo, probablemente sea alguna otra aplicación que estás ejecutando localmente. Bien, así que al inicio, ¿verdad? cuando la aplicación está comenzando, está obteniendo esos elementos nuevamente, ¿verdad? así que siempre regresamos, está bien? Bien, esta es una aplicación estructurada y solo la estoy usando, ya sabes, para explicar, pero esta es una aplicación moderna, ¿verdad?
Tiene una capa de interfaz de usuario, este es todo el marcado, la entrada, la lista de elementos, todos están ahí. Bajo el capó, la aplicación está usando Datastore y el Datastore está haciendo llamadas API REST, así que en esta presentación, solo hablaré sobre, como probar llamadas REST. Son un poco más simples de probar que GraphQL, ya sabes, GraphQL es más avanzado y solo mira nuestra documentación si necesitas interceptar y espiar llamadas GraphQL u otros tipos de llamadas. Bien, tengo una explicación más detallada de la aplicación y cómo puedes probarla, pero por ahora, comencemos con Cypress. Así que terminé la introducción y déjame comenzar con la siguiente. Bien, así que lo primero que quiero mostrar es, ya sabes, qué sucede cuando simplemente comienzas con Cypress, ¿verdad? Tuve la pregunta en realidad, pero está como, ya sabes, en el chat de Zoom o en Discord, ya sabes, ¿cuánto tiempo has usado Cypress?
¿Cuánto tiempo has usado Cypress, verdad? Así que, he usado Cypress por más de cuatro años. Me pregunto si la mayoría de la gente seis meses, tres años, aún no un día. Excelente, así que tenemos un rango desde recién comenzando hasta veteranos. Perfecto, perfecto, así que todos son bienvenidos. Bien, así que esta sección es para personas que acaban de comenzar con Cypress, ¿verdad? o quieren probar. Así que, escribiremos la primera prueba, configuraremos, y explicaré la documentación. Así que, para esta prueba, crearemos una nueva carpeta, está bien? Así que, instalaste en, ya sabes, para MVC en el taller de pruebas, ¿verdad? Pero esto es lo que sucede cuando comienzas desde cero. Así que déjame mostrar cómo sucede. Así que iré a mi carpeta temporal, y crearé un directorio como primero. Y crearé un directorio como primer-uso-sitio. Bien, y cambiaré. Así que esto es lo que sucede si simplemente creas un nuevo proyecto. Bien, así que estoy usando NPM aquí para crear rápidamente un paquete JSON. Cuando instalo Cypress y lo guardo como una dependencia de desarrollo, no es una dependencia de producción, ¿verdad? No es algo necesario para que tu aplicación funcione, ¿verdad? No, pero es algo que quieres instalar si estás desarrollando, por eso es una dependencia de desarrollo. Así que estoy instalando Cypress, ¿verdad? Usando NPM install Cypress. Vamos. Bien. Así que, porque ya instalé esa versión de Cypress, ¿verdad? la encontró, así que nunca tengo que volver a descargar ese archivo grande. Bien, ¿qué tenemos aquí? Ahora mismo, solo empaqueta JSON, ¿verdad? y node modules. Ahora queremos abrir Cypress y hay diferentes maneras. La mejor manera, diría yo, la más moderna y portátil después de hacer PM install Cypress es hacer esto, NPX Cypress open, te sugiero que lo hagas conmigo. Bien, NPX Cypress open. Así que, esta es una carpeta donde acabamos de instalar Cypress, lo ejecutamos por primera vez. Bien. Nota que muestra que para ayudarte a comenzar, creó un montón de archivos. Bien. Así que, esto es lo que vemos. Oh, por cierto, a veces no hago NPX Cypress open. Así que, en su lugar, simplemente creo scripts en mi archivo de paquete y luego puedo abrir con un comando.
Comments