<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Aplicaciones Web Archives - Software Evolutivo</title>
	<atom:link href="https://softwareevolutivo.com.ec/category/desarrollo-de-software/aplicaciones-web-es/feed/" rel="self" type="application/rss+xml" />
	<link>https://softwareevolutivo.com.ec/category/desarrollo-de-software/aplicaciones-web-es/</link>
	<description>Consultora de Software Empresarial</description>
	<lastBuildDate>Mon, 12 Aug 2024 16:57:18 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://softwareevolutivo.com.ec/wp-content/uploads/2024/03/cropped-Perfil-Redes-Iso-32x32.png</url>
	<title>Aplicaciones Web Archives - Software Evolutivo</title>
	<link>https://softwareevolutivo.com.ec/category/desarrollo-de-software/aplicaciones-web-es/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Apache ActiveMQ Artemis</title>
		<link>https://softwareevolutivo.com.ec/apache-activemq-artemis/</link>
					<comments>https://softwareevolutivo.com.ec/apache-activemq-artemis/#respond</comments>
		
		<dc:creator><![CDATA[Bryan Diaz]]></dc:creator>
		<pubDate>Wed, 17 Jul 2024 04:28:25 +0000</pubDate>
				<category><![CDATA[Aplicaciones Web]]></category>
		<category><![CDATA[Backend]]></category>
		<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[Infrarestructura de Software]]></category>
		<category><![CDATA[Tecnología]]></category>
		<category><![CDATA[Tendencias]]></category>
		<category><![CDATA[ActiveMQArtemis]]></category>
		<category><![CDATA[JavaDevelopment]]></category>
		<category><![CDATA[MessageQueue]]></category>
		<category><![CDATA[MicroservicesCommunication]]></category>
		<category><![CDATA[ProducerConsumer]]></category>
		<guid isPermaLink="false">https://softwareevolutivo.com.ec/?p=9937</guid>

					<description><![CDATA[<p>En este artículo vamos a hablar sobre una herramienta muy popular para la comunicación entre aplicaciones llamada Apache ActiveMQ Artemis además revisaremos un ejemplo de cómo implementar su funcionamiento utilizando dos microservicios implementados con Spring Boot y Java.</p>
<p>The post <a href="https://softwareevolutivo.com.ec/apache-activemq-artemis/">Apache ActiveMQ Artemis</a> appeared first on <a href="https://softwareevolutivo.com.ec">Software Evolutivo</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="9937" class="elementor elementor-9937">
				<div class="elementor-element elementor-element-6b20a70 e-flex e-con-boxed e-con e-parent" data-id="6b20a70" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
					</div>
				</div>
		<div class="elementor-element elementor-element-37366db e-flex e-con-boxed e-con e-parent" data-id="37366db" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-09c443d elementor-widget elementor-widget-text-editor" data-id="09c443d" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>En este artículo vamos a hablar sobre una herramienta muy popular para la comunicación entre aplicaciones llamada Apache ActiveMQ Artemis, además revisaremos un ejemplo de cómo implementar su funcionamiento utilizando dos microservicios implementados con Spring Boot y Java.</p><p>A menudo, nos encontramos con eventos que suceden en nuestros sistemas y necesitamos que otros sistemas se enteren de ellos. Notificar estos eventos de manera síncrona puede generar problemas de rendimiento y disponibilidad, ya que los sistemas dependen de la respuesta inmediata de otros sistemas. En cambio, hacerlo de manera asíncrona presenta varias ventajas, como la reducción de la dependencia y el acoplamiento entre sistemas, mejorando la eficiencia y la escalabilidad de nuestras aplicaciones.</p><p>A veces, incluso tenemos procesos manuales que requieren la intervención de una persona para realizar acciones en respuesta a un evento. Con la ayuda de Apache ActiveMQ Artemis, podemos conectar nuestras aplicaciones de manera más eficiente y eliminar estos procesos manuales que no generan valor a nuestros negocios. Este tipo de productos, conocidos como MOM (Message Oriented Middleware), nos permiten implementar el asincronismo, facilitando la comunicación entre sistemas de una manera más flexible y robusta.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-8bec6ab e-flex e-con-boxed e-con e-parent" data-id="8bec6ab" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-181039a elementor-widget elementor-widget-heading" data-id="181039a" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Artemis</h2>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-93f6432 e-flex e-con-boxed e-con e-parent" data-id="93f6432" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-dad8574 elementor-widget elementor-widget-text-editor" data-id="dad8574" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Comenzamos hablando sobre qué es ActiveMQ Artemis.</p><p>En términos oficiales, Apache ActiveMQ Artemis es un intermediario que facilita la comunicación entre diferentes sistemas o aplicaciones. Es de código abierto, muy popular y multiprotocolo, basado en Java. Artemis permite integrar aplicaciones multiplataforma utilizando diversos protocolos, como AMQP (Advanced Message Queuing Protocol &#8211; Protocolo Avanzado de Cola de Mensajes), JMS, MQTT, STOMP, OpenWire, entre otros. Gracias a esta variedad de protocolos, Artemis es una excelente opción para tener comunicación entre dos aplicaciones y poder pasar información de un sistema a otro cuando ocurre un evento.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-c143606 e-flex e-con-boxed e-con e-parent" data-id="c143606" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-6ae1967 elementor-widget elementor-widget-heading" data-id="6ae1967" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Arquitectura </h2>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-fde5372 e-flex e-con-boxed e-con e-parent" data-id="fde5372" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-f1282bc elementor-widget elementor-widget-text-editor" data-id="f1282bc" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>La estructura utilizada es un Middleware Orientado a Mensajes (MOM), el cual permite la comunicación a través del intercambio de mensajes de forma asíncrona. Esto significa que las operaciones se llevan a cabo sin requerir que todas las partes involucradas en la comunicación estén disponibles al mismo tiempo que ocurre el envío de eventos, permitiendo así que los procesos continúen su ejecución sin esperar una respuesta inmediata.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-2148fe8 e-flex e-con-boxed e-con e-parent" data-id="2148fe8" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-ff809a1 elementor-widget elementor-widget-image" data-id="ff809a1" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img fetchpriority="high" decoding="async" width="1024" height="377" src="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image13-1024x377.png" class="attachment-large size-large wp-image-9947" alt="" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image13-1024x377.png 1024w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image13-300x111.png 300w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image13-768x283.png 768w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image13.png 1514w" sizes="(max-width: 1024px) 100vw, 1024px" />											<figcaption class="widget-image-caption wp-caption-text">Flujo de Mensajes entre Producer y Consumer con ActiveMQ Artemis</figcaption>
										</figure>
									</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-31e7f2d e-flex e-con-boxed e-con e-parent" data-id="31e7f2d" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-8813487 elementor-widget elementor-widget-text-editor" data-id="8813487" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>En Artemis contamos con dos tipos de envío de mensajes: los mensajes que se envían a colas de tipo anycast y los de tipo multicast.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-083a3f0 e-flex e-con-boxed e-con e-parent" data-id="083a3f0" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-48070bd elementor-widget elementor-widget-text-editor" data-id="48070bd" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><strong>Anycast:</strong> Conocido como punto a punto (Point-to-Point), en este tipo de cola, varios consumidores están a la escucha de la misma cola y van leyendo los mensajes a medida que llegan. Sin embargo, no todos los consumidores pueden leer el mismo mensaje al mismo tiempo.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-dca52e7 e-flex e-con-boxed e-con e-parent" data-id="dca52e7" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-5db2581 elementor-widget elementor-widget-image" data-id="5db2581" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img decoding="async" width="1024" height="390" src="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image15.png" class="attachment-large size-large wp-image-9948" alt="" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image15.png 1024w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image15-300x114.png 300w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image15-768x293.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" />											<figcaption class="widget-image-caption wp-caption-text">Envío de Mensaje Anycast en ActiveMQ Artemis</figcaption>
										</figure>
									</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-67f0fdd e-flex e-con-boxed e-con e-parent" data-id="67f0fdd" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-85088b1 elementor-widget elementor-widget-text-editor" data-id="85088b1" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><b>Multicast</b>: Es un modo de distribución de tipo publicación-suscripción (pub/sub). Cada mensaje que se envía a una dirección de tipo multicast se replica a las colas que contienen cada sistema que esté a la escucha de los mismos. Como se muestra en la gráfica, aquí tenemos dos consumidores y ambos se enterarán del mismo mensaje al mismo tiempo.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-6b2f48e e-flex e-con-boxed e-con e-parent" data-id="6b2f48e" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-cf0e1fe elementor-widget elementor-widget-image" data-id="cf0e1fe" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img decoding="async" width="1024" height="389" src="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image8.png" class="attachment-large size-large wp-image-9949" alt="" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image8.png 1025w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image8-300x114.png 300w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image8-768x291.png 768w" sizes="(max-width: 1024px) 100vw, 1024px" />											<figcaption class="widget-image-caption wp-caption-text">Envío de Mensaje Multicast en ActiveMQ Artemis</figcaption>
										</figure>
									</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-91d1b70 e-flex e-con-boxed e-con e-parent" data-id="91d1b70" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-bd4fbb0 elementor-widget elementor-widget-text-editor" data-id="bd4fbb0" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Para el desarrollo de este blog, se trabajará con colas de tipo anycast.</p><p>La versión que utilizaremos de ActiveMQ Artemis será la última hasta la fecha de este blog, que es la 2.35. Podemos buscarla en DockerHub como se puede observar en la imagen.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-a0a3b8b e-flex e-con-boxed e-con e-parent" data-id="a0a3b8b" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-cd7118d elementor-widget elementor-widget-image" data-id="cd7118d" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1024" height="748" src="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image4-1024x748.png" class="attachment-large size-large wp-image-9950" alt="" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image4-1024x748.png 1024w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image4-300x219.png 300w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image4-768x561.png 768w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image4.png 1393w" sizes="(max-width: 1024px) 100vw, 1024px" />											<figcaption class="widget-image-caption wp-caption-text">ActiveMQ Artemis en DockerHub</figcaption>
										</figure>
									</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-f36cf0b e-flex e-con-boxed e-con e-parent" data-id="f36cf0b" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-a32b2d2 elementor-widget elementor-widget-heading" data-id="a32b2d2" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Spring Boot</h2>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-f9427a5 e-flex e-con-boxed e-con e-parent" data-id="f9427a5" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-0b2b577 elementor-widget elementor-widget-text-editor" data-id="0b2b577" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Para este blog vamos a trabajar con microservicios de Spring Boot, utilizaremos Maven y el lenguaje Java. La última versión de Spring Boot hasta la fecha de este blog es 3.3.1, y la versión de Java es 21. Agregaremos ActiveMQ Artemis a los proyectos. Los proyectos tienen el nombre de &#8220;producer&#8221; y &#8220;consumer&#8221;. El producer es el encargado de enviar el mensaje a Artemis y crear la cola en Artemis, y el consumer es el encargado de suscribirse a esa cola y leer los mensajes que envíe el producer.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-3ca324d e-flex e-con-boxed e-con e-parent" data-id="3ca324d" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-bb58d69 elementor-widget elementor-widget-image" data-id="bb58d69" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1024" height="527" src="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image19-1024x527.png" class="attachment-large size-large wp-image-9951" alt="" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image19-1024x527.png 1024w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image19-300x154.png 300w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image19-768x395.png 768w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image19-1536x790.png 1536w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image19.png 1613w" sizes="(max-width: 1024px) 100vw, 1024px" />											<figcaption class="widget-image-caption wp-caption-text">Creación de Proyecto en Spring Initializr para Producer</figcaption>
										</figure>
									</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-110a9af e-flex e-con-boxed e-con e-parent" data-id="110a9af" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-c79dd84 elementor-widget elementor-widget-image" data-id="c79dd84" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1024" height="527" src="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image6-1024x527.png" class="attachment-large size-large wp-image-9952" alt="" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image6-1024x527.png 1024w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image6-300x154.png 300w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image6-768x395.png 768w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image6-1536x790.png 1536w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image6.png 1613w" sizes="(max-width: 1024px) 100vw, 1024px" />											<figcaption class="widget-image-caption wp-caption-text">Creación de Proyecto en Spring Initializr para Consumer</figcaption>
										</figure>
									</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-2184605 e-flex e-con-boxed e-con e-parent" data-id="2184605" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-d6f6f81 elementor-widget elementor-widget-heading" data-id="d6f6f81" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Escenario a Resolver</h2>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-806c8be e-flex e-con-boxed e-con e-parent" data-id="806c8be" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-42cd513 elementor-widget elementor-widget-text-editor" data-id="42cd513" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>En un hospital, hay dos sistemas involucrados en la gestión de camas que funcionan de la siguiente forma:</p>								</div>
				</div>
				<div class="elementor-element elementor-element-e3c4945 elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list" data-id="e3c4945" data-element_type="widget" data-e-type="widget" data-widget_type="icon-list.default">
				<div class="elementor-widget-container">
							<ul class="elementor-icon-list-items">
							<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-chevron-circle-right"></i>						</span>
										<span class="elementor-icon-list-text">El Sistema A, encargado de registrar la disponibilidad de camas cuando un paciente abandona la sala de emergencias.</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-chevron-circle-right"></i>						</span>
										<span class="elementor-icon-list-text">El Sistema B, monitorea la ocupación de camas en todo el hospital.</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-chevron-circle-right"></i>						</span>
										<span class="elementor-icon-list-text">Actualmente, cuando el Sistema A registra que una cama está disponible, una enfermera debe ingresar manualmente esta información en el Sistema B.</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-chevron-circle-right"></i>						</span>
										<span class="elementor-icon-list-text">Se busca una mejora para sincronizar automáticamente estos sistemas, de modo que cualquier actualización en el Sistema A se refleje instantáneamente en el Sistema B, eliminando la necesidad de registros manuales.</span>
									</li>
						</ul>
						</div>
				</div>
				<div class="elementor-element elementor-element-83f6a20 elementor-widget elementor-widget-text-editor" data-id="83f6a20" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Para desarrollar este requerimiento, los proyectos que creamos en Spring Boot serán: el producer como nuestro <b>Sistema A</b> y el consumer como nuestro <b>Sistema B.</b></p><p>En el proyecto que creamos en Spring, al agregar la dependencia de Docker y ActiveMQ Artemis, se genera un archivo <b>compose.yaml</b><b>.</b> Utilizaremos este archivo para levantar nuestro contenedor de Artemis. En el proyecto producer, como es el que va a generar el evento, editaremos el archivo <b>compose.yaml</b>, añadiendo la siguiente información:</p>								</div>
				</div>
				<div class="elementor-element elementor-element-e3e5010 elementor-icon-list--layout-traditional elementor-list-item-link-full_width elementor-widget elementor-widget-icon-list" data-id="e3e5010" data-element_type="widget" data-e-type="widget" data-widget_type="icon-list.default">
				<div class="elementor-widget-container">
							<ul class="elementor-icon-list-items">
							<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-chevron-circle-right"></i>						</span>
										<span class="elementor-icon-list-text">El nombre del contenedor de Artemis, </span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-chevron-circle-right"></i>						</span>
										<span class="elementor-icon-list-text">La versión 2.35 (la última hasta la fecha de este blog),</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-chevron-circle-right"></i>						</span>
										<span class="elementor-icon-list-text">Las credenciales para el ingreso a la consola de Artemis y</span>
									</li>
								<li class="elementor-icon-list-item">
											<span class="elementor-icon-list-icon">
							<i aria-hidden="true" class="fas fa-chevron-circle-right"></i>						</span>
										<span class="elementor-icon-list-text">Los puertos donde se ejecuta.</span>
									</li>
						</ul>
						</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-b3b4dfc e-flex e-con-boxed e-con e-parent" data-id="b3b4dfc" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-877ab49 elementor-widget elementor-widget-image" data-id="877ab49" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="360" height="205" src="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/Screenshot-from-2024-07-15-10-44-00.png" class="attachment-large size-large wp-image-9975" alt="" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/Screenshot-from-2024-07-15-10-44-00.png 360w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/Screenshot-from-2024-07-15-10-44-00-300x171.png 300w" sizes="(max-width: 360px) 100vw, 360px" />											<figcaption class="widget-image-caption wp-caption-text">Configuración YAML para Levantar ActiveMQ Artemis en Docker</figcaption>
										</figure>
									</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-aa662d0 e-flex e-con-boxed e-con e-parent" data-id="aa662d0" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-3b3b5d7 elementor-widget elementor-widget-text-editor" data-id="3b3b5d7" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Para levantar el contenedor de Artemis con las modificaciones realizadas al archivo compose.yaml, en este blog se ejecutará con <a href="https://docs.podman.io/en/latest/" target="_blank" rel="noopener">Podman</a> porque la práctica se está realizando en un sistema operativo Fedora, que ya lo incluye. Pero si cuentan con Docker también pueden utilizarlo, no habría problema. Ejecutamos nuestro archivo desde la ubicación donde se encuentra nuestro archivo compose.yaml y ejecutamos:</p><p><b><i>podman-compose -f compose.yaml up</i></b><i> </i></p><p>o con Docker:</p><p><b><i>docker compose -f compose.yaml up</i></b></p><p>Esto comenzará a descargar la imagen de Artemis.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-3d60b7e e-flex e-con-boxed e-con e-parent" data-id="3d60b7e" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-19a3c3d elementor-widget elementor-widget-image" data-id="19a3c3d" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1024" height="319" src="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image12-1024x319.png" class="attachment-large size-large wp-image-9955" alt="" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image12-1024x319.png 1024w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image12-300x94.png 300w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image12-768x240.png 768w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image12.png 1093w" sizes="(max-width: 1024px) 100vw, 1024px" />											<figcaption class="widget-image-caption wp-caption-text">Descarga de Imagen de ActiveMQ Artemis</figcaption>
										</figure>
									</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-0ee1d13 e-flex e-con-boxed e-con e-parent" data-id="0ee1d13" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-a17ee75 elementor-widget elementor-widget-image" data-id="a17ee75" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1024" height="334" src="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image16-1024x334.png" class="attachment-large size-large wp-image-9956" alt="" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image16-1024x334.png 1024w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image16-300x98.png 300w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image16-768x250.png 768w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image16.png 1289w" sizes="(max-width: 1024px) 100vw, 1024px" />											<figcaption class="widget-image-caption wp-caption-text">Contenedor de ActiveMQ Artemis Levantado</figcaption>
										</figure>
									</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-f15abd5 e-flex e-con-boxed e-con e-parent" data-id="f15abd5" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-72e8c30 elementor-widget elementor-widget-text-editor" data-id="72e8c30" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Una vez que en los logs salga un mensaje como el siguiente: <b>AMQ241004: Artemis Console available at link</b>, podemos ingresar a un navegador y acceder a la URL <b>localhost:8161</b> para acceder a la pantalla de Artemis.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-65b4866 e-flex e-con-boxed e-con e-parent" data-id="65b4866" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-22dcfa9 elementor-widget elementor-widget-image" data-id="22dcfa9" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1024" height="656" src="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image14-1024x656.jpg" class="attachment-large size-large wp-image-9957" alt="" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image14-1024x656.jpg 1024w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image14-300x192.jpg 300w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image14-768x492.jpg 768w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image14-390x250.jpg 390w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image14.jpg 1443w" sizes="(max-width: 1024px) 100vw, 1024px" />											<figcaption class="widget-image-caption wp-caption-text">Pantalla de Logueo de ActiveMQ Artemis en Navegador</figcaption>
										</figure>
									</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-206cb9c e-flex e-con-boxed e-con e-parent" data-id="206cb9c" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-5c574d9 elementor-widget elementor-widget-text-editor" data-id="5c574d9" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Las credenciales serán las que configuramos en nuestro archivo compose.yaml, en este caso artemis como username y artemis como password.</p><p>Una vez dentro de la consola, podemos observar las versiones de Artemis y navegar por el mismo.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-f7c0c48 e-flex e-con-boxed e-con e-parent" data-id="f7c0c48" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-35e4459 elementor-widget elementor-widget-image" data-id="35e4459" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1024" height="691" src="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image9-1024x691.png" class="attachment-large size-large wp-image-9958" alt="" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image9-1024x691.png 1024w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image9-300x203.png 300w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image9-768x518.png 768w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image9.png 1477w" sizes="(max-width: 1024px) 100vw, 1024px" />											<figcaption class="widget-image-caption wp-caption-text">Versión de ActiveMQ Artemis</figcaption>
										</figure>
									</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-773fddf e-flex e-con-boxed e-con e-parent" data-id="773fddf" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-42d38b5 elementor-widget elementor-widget-image" data-id="42d38b5" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1024" height="473" src="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image2-1024x473.png" class="attachment-large size-large wp-image-9959" alt="" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image2-1024x473.png 1024w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image2-300x139.png 300w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image2-768x355.png 768w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image2-1536x710.png 1536w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image2.png 1937w" sizes="(max-width: 1024px) 100vw, 1024px" />											<figcaption class="widget-image-caption wp-caption-text">Pantalla de Inicio de ActiveMQ Artemis</figcaption>
										</figure>
									</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-6f5112e e-flex e-con-boxed e-con e-parent" data-id="6f5112e" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-1e55df2 elementor-widget elementor-widget-text-editor" data-id="1e55df2" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Se debe deshabilitar el Docker Compose de los proyectos Spring Boot, en el archivo de propiedades application.properties colocar:</p><p><em>spring.docker.compose.enabled=false</em></p><p>Para que no se levante Artemis cada que se ejecute el proyecto, sino que se levante una única vez cuando nosotros lo necesitemos.</p><p>Para poder enviar el evento desde el <strong>Sistema A</strong> al <strong>Sistema B</strong>, necesitamos un método que nos ayude con el envío. En este caso, hemos creado el método pushRequestPaymentOrder (puedes darle cualquier nombre). Primero, creamos nuestro DTO que contendrá la información que necesita el <strong>Sistema B</strong>. Para nuestro caso planteado, vamos a enviar un mensaje que indique que la cama está disponible y el ID de la cama correspondiente.</p><p>Utilizamos el atributo de clase que inyectamos de JmsTemplate, una clase de Spring que facilita el envío y recepción de mensajes a través de JMS. Utilizamos el método convertAndSend, que convierte el objeto DTO en un mensaje en formato JSON y lo envía a TopicDemo, que es el nombre de la cola a la que se envía el mensaje.</p><p>El método pushRequestPaymentOrder se llama desde la lógica de negocio en el sistema cuando se necesita encolar información. Por ejemplo, cuando se detecta que una cama está disponible, se invoca este método para enviar la información al <strong>Sistema B</strong>.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-d55680b e-flex e-con-boxed e-con e-parent" data-id="d55680b" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-6a9d919 elementor-widget elementor-widget-image" data-id="6a9d919" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="664" height="494" src="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image11.png" class="attachment-large size-large wp-image-9964" alt="" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image11.png 664w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image11-300x223.png 300w" sizes="(max-width: 664px) 100vw, 664px" />											<figcaption class="widget-image-caption wp-caption-text">Programación para Encolar Mensajes en ActiveMQ Artemis</figcaption>
										</figure>
									</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-3bbdc0d e-flex e-con-boxed e-con e-parent" data-id="3bbdc0d" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-39123a1 elementor-widget elementor-widget-text-editor" data-id="39123a1" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Para que podamos observar la información de ese mensaje en Artemis, debemos tener en nuestro producer lo siguiente:</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-026764e e-flex e-con-boxed e-con e-parent" data-id="026764e" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-6834c1e elementor-widget elementor-widget-image" data-id="6834c1e" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="735" height="231" src="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/Screenshot-from-2024-07-15-08-57-43.png" class="attachment-large size-large wp-image-9965" alt="" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/Screenshot-from-2024-07-15-08-57-43.png 735w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/Screenshot-from-2024-07-15-08-57-43-300x94.png 300w" sizes="(max-width: 735px) 100vw, 735px" />											<figcaption class="widget-image-caption wp-caption-text">Método de Transformación a JSON antes de Encolar en ActiveMQ Artemis</figcaption>
										</figure>
									</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-b6c1458 e-flex e-con-boxed e-con e-parent" data-id="b6c1458" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-10f7c44 elementor-widget elementor-widget-text-editor" data-id="10f7c44" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>El convertidor se utiliza tanto en el productor como en el consumidor para manejar la transformación del DTO. En el Sistema A, el convertidor transforma el DTO de un objeto Java a JSON antes de enviarlo a Artemis. Luego, cuando consumimos el evento en el Sistema B, el convertidor transforma el JSON almacenado en Artemis de vuelta a un objeto Java. Esto asegura que los datos se mantengan consistentes y fácilmente manejables a lo largo del proceso de comunicación entre sistemas.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-0ea826a e-flex e-con-boxed e-con e-parent" data-id="0ea826a" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-ae4ab64 elementor-widget elementor-widget-image" data-id="ae4ab64" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1024" height="390" src="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image7-1024x390.png" class="attachment-large size-large wp-image-9966" alt="" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image7-1024x390.png 1024w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image7-300x114.png 300w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image7-768x293.png 768w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image7-1536x586.png 1536w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image7.png 1907w" sizes="(max-width: 1024px) 100vw, 1024px" />											<figcaption class="widget-image-caption wp-caption-text">Confirmación de Llegada de Mensaje en ActiveMQ Artemis</figcaption>
										</figure>
									</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-058d6ff e-flex e-con-boxed e-con e-parent" data-id="058d6ff" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-0be212a elementor-widget elementor-widget-image" data-id="0be212a" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1024" height="537" src="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image3-1024x537.png" class="attachment-large size-large wp-image-9967" alt="" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image3-1024x537.png 1024w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image3-300x157.png 300w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image3-768x403.png 768w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image3-1536x805.png 1536w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image3.png 1906w" sizes="(max-width: 1024px) 100vw, 1024px" />											<figcaption class="widget-image-caption wp-caption-text">Detalle del Mensaje en ActiveMQ Artemis</figcaption>
										</figure>
									</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-5e5570d e-flex e-con-boxed e-con e-parent" data-id="5e5570d" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-6addc1b elementor-widget elementor-widget-text-editor" data-id="6addc1b" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Una vez confirmado que nuestro evento llegó con normalidad a Artemis y podemos observar su información, lo siguiente es levantar nuestro Sistema B, que en este caso sería nuestro consumidor. Debemos configurarlo para que esté a la escucha de los eventos que lleguen a una cola específica para poder leerlos y acceder a su información.</p><p>Eso lo realizamos de la siguiente manera:</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-4423146 e-flex e-con-boxed e-con e-parent" data-id="4423146" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-3aaf924 elementor-widget elementor-widget-image" data-id="3aaf924" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="551" height="214" src="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/Screenshot-from-2024-07-15-09-13-16.png" class="attachment-large size-large wp-image-9968" alt="" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/Screenshot-from-2024-07-15-09-13-16.png 551w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/Screenshot-from-2024-07-15-09-13-16-300x117.png 300w" sizes="(max-width: 551px) 100vw, 551px" />											<figcaption class="widget-image-caption wp-caption-text">Programación para Consumir un Mensaje de una Cola en ActiveMQ Artemis</figcaption>
										</figure>
									</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-06cb64b e-flex e-con-boxed e-con e-parent" data-id="06cb64b" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-e630d65 elementor-widget elementor-widget-text-editor" data-id="e630d65" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Creamos nuestro método que tiene la etiqueta <strong>@JmsListener</strong>, que indica que está a la escucha de lo que llegue a esa dirección de cola, llamada TopicDemo, que es el nombre de la cola donde el producer envió el evento. Pero como se mencionó anteriormente, al momento de leer el evento, está leyendo un valor tipo JSON, por lo que queremos que lo transforme al objeto que necesitamos. Para ello, aquí también utilizamos el método <strong>jacksonJmsMessageConverter</strong>.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-daefc47 e-flex e-con-boxed e-con e-parent" data-id="daefc47" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-a793d97 elementor-widget elementor-widget-image" data-id="a793d97" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="894" height="605" src="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image18-1.png" class="attachment-large size-large wp-image-9969" alt="" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image18-1.png 894w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image18-1-300x203.png 300w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image18-1-768x520.png 768w" sizes="(max-width: 894px) 100vw, 894px" />											<figcaption class="widget-image-caption wp-caption-text">Método para Consumir Mensaje y Transformación de JSON a Objeto</figcaption>
										</figure>
									</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-3492aa2 e-flex e-con-boxed e-con e-parent" data-id="3492aa2" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-553375b elementor-widget elementor-widget-text-editor" data-id="553375b" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Como podemos ver en los logs, al levantar este microservicio se hará el consumo del mensaje que representa el evento. Ya tenemos que la cama está disponible, y lo siguiente sería actualizar en el Sistema B, en base de datos, que ahora la cama con el ID que acabamos de leer está disponible.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-4cd94b6 e-flex e-con-boxed e-con e-parent" data-id="4cd94b6" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-7a37fda elementor-widget elementor-widget-heading" data-id="7a37fda" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Resumen</h2>				</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-bb377ce e-flex e-con-boxed e-con e-parent" data-id="bb377ce" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-263f5d6 elementor-widget elementor-widget-text-editor" data-id="263f5d6" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>En resumen, teníamos un Sistema A que contaba con una información, pero esa información necesitaba saberla el Sistema B. Para que el Sistema B se enterara, era necesario contar con una persona que analizara los cambios en el Sistema A y luego actualizara el Sistema B. Pero, ¿Qué ocurre si durante el almuerzo hay cambios o si la persona encargada de actualizar se distrae? No contaremos con la información actualizada en tiempo real.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-20726a9 e-flex e-con-boxed e-con e-parent" data-id="20726a9" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-4e78236 elementor-widget elementor-widget-image" data-id="4e78236" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1024" height="1024" src="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image10-1024x1024.jpg" class="attachment-large size-large wp-image-9970" alt="" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image10-1024x1024.jpg 1024w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image10-300x300.jpg 300w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image10-150x150.jpg 150w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image10-768x768.jpg 768w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image10-450x450.jpg 450w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image10-106x106.jpg 106w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image10-560x560.jpg 560w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image10-70x70.jpg 70w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image10.jpg 1080w" sizes="(max-width: 1024px) 100vw, 1024px" />											<figcaption class="widget-image-caption wp-caption-text">Comunicación entre Sistema A y B a través de una Persona</figcaption>
										</figure>
									</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-4b0efb4 e-flex e-con-boxed e-con e-parent" data-id="4b0efb4" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-b950352 elementor-widget elementor-widget-text-editor" data-id="b950352" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Para eso, presentamos la solución planteada en este Blog: ahora no se requiere de una persona para hacer estas actualizaciones, sino que el Sistema A será un producer que envía eventos a Artemis cuando se desocupe alguna cama. Luego, el Sistema B será un consumer que esta a la escucha de esos eventos en Artemis para leerlos y actualizar automáticamente en sus registros que ahora la cama está disponible, asegurando así información actualizada en todo momento.</p>								</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-bc67c64 e-flex e-con-boxed e-con e-parent" data-id="bc67c64" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-807f9ca elementor-widget elementor-widget-image" data-id="807f9ca" data-element_type="widget" data-e-type="widget" data-widget_type="image.default">
				<div class="elementor-widget-container">
												<figure class="wp-caption">
										<img loading="lazy" decoding="async" width="1024" height="1024" src="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image1-1024x1024.jpg" class="attachment-large size-large wp-image-9971" alt="" srcset="https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image1-1024x1024.jpg 1024w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image1-300x300.jpg 300w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image1-150x150.jpg 150w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image1-768x768.jpg 768w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image1-450x450.jpg 450w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image1-106x106.jpg 106w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image1-560x560.jpg 560w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image1-70x70.jpg 70w, https://softwareevolutivo.com.ec/wp-content/uploads/2024/07/image1.jpg 1080w" sizes="(max-width: 1024px) 100vw, 1024px" />											<figcaption class="widget-image-caption wp-caption-text">Comunicación entre Sistema A y B a través de ActiveMQ Artemis</figcaption>
										</figure>
									</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-ed84ab3 e-con-full e-flex e-con e-parent" data-id="ed84ab3" data-element_type="container" data-e-type="container">
				<div class="elementor-element elementor-element-1b50697 elementor-widget elementor-widget-text-editor" data-id="1b50697" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Esto fue un ejemplo con el uso de colas de tipo anycast. Próximamente se hará un blog con un escenario para colas de tipo multicast.</p><p>Si tienes alguna pregunta o comentario sobre este tema, no dudes en dejarlos abajo. Nos encantaría saber tu opinión y ayudarte con cualquier duda que puedas tener. ¡Gracias por leer!</p>								</div>
				</div>
				</div>
		<div class="elementor-element elementor-element-92a55cb e-flex e-con-boxed e-con e-parent" data-id="92a55cb" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-29d2f9a elementor-widget elementor-widget-text-editor" data-id="29d2f9a" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><strong>Link de los proyectos:</strong></p><p><a href="https://github.com/softwareevolutivo/artemis" target="_blank" rel="noopener">https://github.com/softwareevolutivo/artemis</a></p><p><strong>Referencia:</strong></p><ul><li><a href="https://activemq.apache.org/components/artemis/documentation/2.0.0/address-model.html" target="_blank" rel="noopener">https://activemq.apache.org/components/artemis/documentation/2.0.0/address-model.html</a></li></ul><ul><li><strong>Taller en Youtube &#8211; Apache ActiveMQ Artemis ▶ ¿Qué es y para qué sirve?</strong></li></ul><p><a href="https://www.youtube.com/watch?v=Sn4TyzmtLxU" target="_blank" rel="noopener">https://www.youtube.com/watch?v=Sn4TyzmtLxU</a></p>								</div>
				</div>
				<div class="elementor-element elementor-element-23ebb18 elementor-widget elementor-widget-spacer" data-id="23ebb18" data-element_type="widget" data-e-type="widget" data-widget_type="spacer.default">
				<div class="elementor-widget-container">
							<div class="elementor-spacer">
			<div class="elementor-spacer-inner"></div>
		</div>
						</div>
				</div>
					</div>
				</div>
		<div class="elementor-element elementor-element-a3e4b03 e-flex e-con-boxed e-con e-parent" data-id="a3e4b03" data-element_type="container" data-e-type="container">
					<div class="e-con-inner">
				<div class="elementor-element elementor-element-3e4a8a0 elementor-widget elementor-widget-witr_section_call_to_ac" data-id="3e4a8a0" data-element_type="widget" data-e-type="widget" data-widget_type="witr_section_call_to_ac.default">
				<div class="elementor-widget-container">
								<!-- themex call to action 3 -->

		<div class=" all_cal_color">
			<div class="cal_to_toggole">
					<div class="themex_content col_content_width_100 text-left">
						<!-- top title -->
							
						<!-- middle title -->
														
								<h2>¿Quieres mejorar tus procesos de integración?</h2>																	
												<!-- bottom title -->
													<!-- content -->
													<p>Descubre nuestros servicios y agenda una demo. </p>		
							
					
					</div>
				<!-- button -->
						
						<div class="themex_button no_margin text-right">						
							<a href="https://softwareevolutivo.com.ec/demo-devops-kubernetes/" > 							
								Ver Demo								<!-- icon -->
																	<i class="icofont-paper-plane"></i>
																							
							</a>
						</div>
								
			</div>
		</div>
					</div>
				</div>
					</div>
				</div>
				</div>
		<p>The post <a href="https://softwareevolutivo.com.ec/apache-activemq-artemis/">Apache ActiveMQ Artemis</a> appeared first on <a href="https://softwareevolutivo.com.ec">Software Evolutivo</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://softwareevolutivo.com.ec/apache-activemq-artemis/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Cucumber + Spring boot 2 + Junit 5</title>
		<link>https://softwareevolutivo.com.ec/cucumber-spring-boot-2-junit-5/</link>
					<comments>https://softwareevolutivo.com.ec/cucumber-spring-boot-2-junit-5/#comments</comments>
		
		<dc:creator><![CDATA[Johannes Caranqui]]></dc:creator>
		<pubDate>Thu, 24 Nov 2022 15:15:28 +0000</pubDate>
				<category><![CDATA[Aplicaciones Web]]></category>
		<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[Tecnología]]></category>
		<category><![CDATA[Tendencias]]></category>
		<category><![CDATA[cucumber]]></category>
		<category><![CDATA[junit]]></category>
		<category><![CDATA[pruebas aceptacion cucumber]]></category>
		<category><![CDATA[springboot]]></category>
		<guid isPermaLink="false">https://softwareevolutivo.com.ec/?p=6600</guid>

					<description><![CDATA[<p>Cuando no se realiza un buen testing el costo de arreglar un error en producción es elevado, por lo cual aplicar una buena técnica de testing nos ayuda a dormir mejor en las noches, para ello, poder incluir al equipo de desarrollo y negocio en las pruebas automatizadas será un gran avance para mantener el código y los requerimientos bajo control, aquí nace las pruebas de aceptación y BDD, una buena implementación y planteamiento de requerimientos es fundamental en esta etapa de desarrollo.</p>
<p>The post <a href="https://softwareevolutivo.com.ec/cucumber-spring-boot-2-junit-5/">Cucumber + Spring boot 2 + Junit 5</a> appeared first on <a href="https://softwareevolutivo.com.ec">Software Evolutivo</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="6600" class="elementor elementor-6600">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-85ce7c7 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="85ce7c7" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-e323cba" data-id="e323cba" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-4bb4968 elementor-widget elementor-widget-text-editor" data-id="4bb4968" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="text-align: justify;background-color: transparent;font-size: 10.5pt;font-family: Roboto, sans-serif;color: #000000;vertical-align: baseline">&nbsp;</span></p>
<p><span></span></p>
<p dir="ltr" style="line-height:1.38;text-align: justify;margin-top:0pt;margin-bottom:0pt"><span style="font-size:10.5pt;font-family:Roboto,sans-serif;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">Cuando no se realiza un buen testing el costo de arreglar un error en producción es elevado, por lo cual aplicar una buena técnica de testing nos ayuda a dormir mejor en las noches</span><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">, para ello, poder incluir al equipo de desarrollo y negocio en las pruebas automatizadas será un gran avance para mantener el código y los requerimientos bajo control, aquí nace las </span><a href="https://softwareevolutivo.com.ec/espanol-iniciando-con-las-pruebas-de-aceptacion/" target="_blank">pruebas de aceptación y BDD</a><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline">, una buena implementación y planteamiento de requerimientos es fundamental en esta etapa de desarrollo.</span></p>
<p dir="ltr" style="line-height:1.38;text-align: justify;margin-top:0pt;margin-bottom:0pt"><span style="font-size:11pt;font-family:Arial;color:#000000;background-color:transparent;font-weight:400;font-style:normal;font-variant:normal;text-decoration:none;vertical-align:baseline"><br></span></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Como antecedente, comprendamos que </span><a href="https://cucumber.io/" target="_blank" rel="noopener">Cucumber</a><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> es un software de testing TDD que nos permitirá elaborar pruebas automáticas a partir de criterios de aceptación fácilmente entendibles por los intervinientes en el proceso, el cual vamos a implementar en éste tutorial, así como </span><a href="https://spring.io/projects/spring-boot" target="_blank" rel="noopener">Spring Boot</a><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> y </span><a href="https://junit.org/junit5/" target="_blank" rel="noopener">JUnit</a><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">.</span></p>
<p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Para iniciar, necesitamos un proyecto básico con Spring Boot 2, en esta oportunidad lo crearemos con </span><a href="https://start.spring.io/" target="_blank" rel="noopener">Spring Initializer</a><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">, un API que permite la generación de proyectos con sus dependencias permitiendo simplificar esta etapa de arranque, aunque también se puede utilizar el plugin de Spring Boot de IntelliJ o Visual Studio Code.</span></p>
<p><b style="font-weight: normal"><br></b><span style="background-color: transparent;color: #000000;font-family: Arial;font-size: 11pt;text-align: justify">Usaremos la siguiente configuración:</span><b style="font-weight: normal"><br></b></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><span style="border: none;overflow: hidden;width: 660px;height: 318px"><img loading="lazy" decoding="async" style="margin-left: 0px;margin-top: 0px" src="https://lh4.googleusercontent.com/PGX81K76UH5KJXaCqomM-fMIxQb-rSD73je9w3RP7Usa46az8TjAZzQAMl_wbN54Eou6B3cMLlbH_QbY78C5mYVO42MsYu-3c_hDEFoX2Iy5JSMpx_kFJSC0PvNvuqc7qN6G2wb1W67Z8tTeDAZkvhawRPMIFQ7CggQ15L6RudhV-8vjOV4KvcsNivU3fA" width="660" height="318"></span></span></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9pt;font-family: Arial;color: #434343;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Configuración inicial con Spring Boot Initializer</span></p>
<p><b style="font-weight: normal">&nbsp;</b></p>
<ol style="margin-top: 0;margin-bottom: 0;padding-inline-start: 48px">
<li dir="ltr" style="list-style-type: decimal;font-size: 15pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt" role="presentation"><span style="font-size: 15pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Configuración de Cucumber y Junit 5</span></p>
</li>
</ol>
<div style="text-align: justify"><span style="color: #000000;font-family: Arial"><span style="font-size: 20px"><b>&nbsp;</b></span></span></div>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">En este paso agregaremos las dependencias de maven (librerías que se necesita para el funcionamiento correcto de Cucumber con Spring y Junit).</span></p>
<p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">1.1 Dependencias de Maven (pom.xml)</span></p>
<p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">1.1.1 Cucumber JVM&nbsp;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt">
</p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">dependency</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">groupId</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">io.cucumber</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">groupId</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">artifactId</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">cucumber-java</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">artifactId</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">version</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">7.8.1</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">version</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">scope</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">test</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">scope</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">dependency</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt">
</p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Podemos encontrar el listado de versiones </span><a href="https://mvnrepository.com/artifact/io.cucumber/cucumber-jvm" target="_blank">aquí</a><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">.</span></p>
<p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">1.1.2 Junit y Cucumber</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">dependency</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">groupId</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">io.cucumber</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">groupId</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">artifactId</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">cucumber-junit-platform-engine</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">artifactId</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">version</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">7.8.1</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">version</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">scope</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">test</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">scope</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">dependency</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt">
</p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Podemos encontrar el listado de versiones </span><a href="https://mvnrepository.com/artifact/io.cucumber/cucumber-junit-platform-engine" target="_blank">aquí</a><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">.</span></p>
<p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">1.1.3 Junit platform suite </span><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">(ya que la opción @Cucumber de Junit4 quedó obsoleta)</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">dependency</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">groupId</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">org.junit.platform</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">groupId</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">artifactId</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">junit-platform-suite</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">artifactId</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">version</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">1.9.0</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">version</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">scope</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">test</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">scope</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">dependency</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt">
</p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Podemos encontrar el listado de versiones </span><a href="https://mvnrepository.com/artifact/org.junit.platform/junit-platform-suite" target="_blank">aquí</a><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">.</span></p>
<p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 12pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">1.1.4 Finalmente Spring y Cucumber</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt">
</p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">dependency</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">groupId</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">io.cucumber</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">groupId</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">artifactId</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">cucumber-spring</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">artifactId</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">version</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">7.8.1</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">version</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">scope</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">test</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">scope</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&lt;/</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">dependency</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #808080;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Podemos encontrar el listado de versiones </span><a href="https://mvnrepository.com/artifact/io.cucumber/cucumber-spring" target="_blank">aquí</a><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">.</span></p>
<p><b style="font-weight: normal">&nbsp;</b></p>
<ol style="margin-top: 0;margin-bottom: 0;padding-inline-start: 48px" start="2">
<li dir="ltr" style="list-style-type: decimal;font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt" role="presentation"><span style="font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Definición e implementación de “Features”</span></p>
</li>
</ol>
<p><span style="text-align: justify;background-color: transparent;font-size: 11pt;font-family: Arial;color: #000000;vertical-align: baseline">Para esta definición, lo más usual es utilizar </span><a href="https://cucumber.io/docs/gherkin/" target="_blank">Gherkin</a><span style="text-align: justify;background-color: transparent;font-size: 11pt;font-family: Arial;color: #000000;vertical-align: baseline">; al ser de alto nivel, no es tan técnico, por lo que, es posible involucrar al personal de negocio.</span></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Creamos el archivo </span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: italic;font-variant: normal;text-decoration: none;vertical-align: baseline">demo.feature</span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> en </span><span style="font-size: 11pt;font-family: Arial;color: #4a86e8;background-color: transparent;font-weight: 400;font-style: italic;font-variant: normal;text-decoration: none;vertical-align: baseline">src/test/java/&lt;paquete&gt;/cucumber/features </span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">con el siguiente contenido:</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt">
</p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #c586c0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Feature</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">: the hello endpoint can be retrieved</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt">
</p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #c586c0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Scenario</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">: client makes call to GET greeting endpoint</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #c586c0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Given </span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">client wants to write username</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #c586c0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">When </span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">client calls greeting endpoint</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #c586c0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Then </span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">client receives hello text and username</span></p>
<p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">El contenido no debe contener muchas definiciones técnicas, recordemos que el objetivo es que todo el equipo se involucre.</span></p>
<p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Definición de pasos:</span></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;</span></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Given: </span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Dada una situación en la que configuramos el test.</span></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">When:</span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> Acción que se realiza o un evento llega.</span></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Then: </span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Espero que suceda algo o puedo comprobarlo.</span></p>
<p><b style="font-weight: normal">&nbsp;</b></p>
<ol style="margin-top: 0;margin-bottom: 0;padding-inline-start: 48px" start="3">
<li dir="ltr" style="list-style-type: decimal;font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt" role="presentation"><span style="font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Configuración de puntos de entrada</span></p>
</li>
</ol>
<p><span style="background-color: transparent;color: #000000;font-family: Arial;font-size: 11pt;text-align: justify">La siguiente clase nos sirve como punto de entrada de Cucumber para ejecutar los tests, la podemos llamar de cualquier forma pero siempre tomando en cuenta las convenciones.</span></p>
<p><span style="text-align: justify;background-color: transparent;font-size: 11pt;font-family: Arial;color: #000000;vertical-align: baseline">Creamos la clase </span><span style="text-align: justify;background-color: transparent;font-size: 11pt;font-family: Arial;color: #000000;font-weight: bold;vertical-align: baseline">CucumberTest.java</span><span style="text-align: justify;background-color: transparent;font-size: 11pt;font-family: Arial;color: #000000;vertical-align: baseline"> en </span><span style="text-align: justify;background-color: transparent;font-size: 11pt;font-family: Arial;color: #4a86e8;font-style: italic;vertical-align: baseline">src/test/java/&lt;paquete&gt;/cucumber </span><span style="text-align: justify;background-color: transparent;font-size: 11pt;font-family: Arial;color: #000000;vertical-align: baseline">con el siguiente contenido:</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt">
</p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 8.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;@</span><span style="font-size: 8.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Suite</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 8.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;@</span><span style="font-size: 8.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">IncludeEngines</span><span style="font-size: 8.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">(</span><span style="font-size: 8.5pt;font-family: 'Courier New';color: #ce9178;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&#8220;cucumber&#8221;</span><span style="font-size: 8.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">)</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 8.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;@</span><span style="font-size: 8.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">SelectClasspathResource</span><span style="font-size: 8.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">(</span><span style="font-size: 8.5pt;font-family: 'Courier New';color: #ce9178;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&#8220;com/sevolutivo/demo/cucumber/features&#8221;</span><span style="font-size: 8.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">)</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 8.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;@</span><span style="font-size: 8.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">ConfigurationParameter</span><span style="font-size: 8.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">(key = GLUE_PROPERTY_NAME, value = </span><span style="font-size: 8.5pt;font-family: 'Courier New';color: #ce9178;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&#8220;com.sevolutivo.demo.cucumber.stepDefs&#8221;</span><span style="font-size: 8.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">)</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 8.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;</span><span style="font-size: 8.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">public</span> <span style="font-size: 8.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">class</span> <span style="font-size: 8.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">CucumberTest</span><span style="font-size: 8.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> {</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 8.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;}</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt">
</p><p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10pt;font-family: 'Courier New';color: #000000;background-color: #ffff00;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">@Suite</span><span style="font-size: 10pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> y </span><span style="font-size: 10pt;font-family: 'Courier New';color: #000000;background-color: #ffff00;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">@IncludeEngines(&#8220;cucumber&#8221;)</span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> son el equivalente a la antigua </span><span style="font-size: 11pt;font-family: 'Courier New';color: #434343;background-color: transparent;font-weight: bold;font-style: italic;font-variant: normal;text-decoration: none;vertical-align: baseline">@Cucumber</span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">, pero que con la versión 7 de Cucumber quedó obsoleta.&nbsp;</span></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;</span></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">En JUnit 5, podemos definir las opciones de cucumber en el fichero </span><span style="font-size: 10pt;font-family: 'Courier New';color: #000000;background-color: #ffff00;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">junit-platform.properties</span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">, en la carpeta resources de tests.</span></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;</span></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10pt;font-family: 'Courier New';color: #000000;background-color: #ffff00;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">@SelectClasspathResource(&#8220;&lt;paquete&gt;/cucumber/features&#8221;)</span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> nos dice dentro de la carpeta resources donde tenemos los ficheros </span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: italic;font-variant: normal;text-decoration: none;vertical-align: baseline">.feature&nbsp;</span></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: italic;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;</span></p>
<p><span style="text-align: justify;font-size: 10pt;font-family: 'Courier New';color: #000000;background-color: #ffff00;font-weight: bold;vertical-align: baseline">@ConfigurationParameter(key = GLUE_PROPERTY_NAME, value = &#8220;&lt;paquete&gt;.cucumber.stepDefs&#8221;)</span><span style="text-align: justify;background-color: transparent;font-size: 11pt;font-family: Arial;color: #000000;vertical-align: baseline"> le decimos donde están las clases de pegamento, es decir, los steps.</span></p>
<p><b style="font-weight: normal">&nbsp;</b></p>
<ol style="margin-top: 0;margin-bottom: 0;padding-inline-start: 48px" start="4">
<li dir="ltr" style="list-style-type: decimal;font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt" role="presentation"><span style="font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Configuración opcional adicional (junit-platform.properties)</span></p>
</li>
</ol>
<div style="text-align: justify"><font color="#000000" face="Arial"><span style="font-size: 21.3333px"><b><br></b></span></font></div>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Creamos el archivo </span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">junit-platform.properties</span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> en </span><span style="font-size: 11pt;font-family: Arial;color: #4a86e8;background-color: transparent;font-weight: 400;font-style: italic;font-variant: normal;text-decoration: none;vertical-align: baseline">src/test/resources </span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">con el siguiente contenido:</span></p>
<p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt">
</p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;cucumber.publish.quiet=</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #ce9178;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">true</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;cucumber.publish.enabled=</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #ce9178;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">false</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;cucumber.plugin=</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #ce9178;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">pretty, html:target/cucumber-reports/Cucumber.html, &nbsp; json:target/cucumber-reports/Cucumber.json,junit:target/cucumber-reports/Cucumber.xml</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt">
</p><p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">En el ejemplo anterior, estamos quitando el banner que aparece al ejecutar cucumber y le decimos que no publique los resultados en su servicio de la nube. También estamos generando los informes localmente en formato html, json y xml en el directorio target/cucumber-reports.</span></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;</span></p>
<ol style="margin-top: 0;margin-bottom: 0;padding-inline-start: 48px" start="5">
<li dir="ltr" style="list-style-type: decimal;font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt" role="presentation"><span style="font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Configuración de Spring</span></p>
</li>
</ol>
<p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Vamos a configurar Cucumber para que pueda hacer uso del contexto de Spring con la notación </span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">@SpringBootTest</span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">, vamos a inyectar también </span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">TestRestTemplate </span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">para hacer llamadas Rest.</span></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;</span></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Creamos el archivo </span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">CucumberSpringConfiguration.java</span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> en </span><span style="font-size: 11pt;font-family: Arial;color: #4a86e8;background-color: transparent;font-weight: 400;font-style: italic;font-variant: normal;text-decoration: none;vertical-align: baseline">src/test/java/&lt;paquete&gt;/cucumber</span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">:</span></p>
<p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt">
</p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">@</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">SpringBootTest</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">(webEnvironment=</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #9cdcfe;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">SpringBootTest</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">.</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #9cdcfe;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">WebEnvironment</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">.</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #9cdcfe;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">RANDOM_PORT</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">)</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">public</span> <span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">class</span> <span style="font-size: 10.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">CucumberSpringConfiguration</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> {</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt">
</p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Autowired</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">protected</span> <span style="font-size: 10.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">TestRestTemplate</span> <span style="font-size: 10.5pt;font-family: 'Courier New';color: #9cdcfe;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">testRestTemplate</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;}</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt">
</p><p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Para comprobar el correcto funcionamiento ejecutamos </span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: #ffff00;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">./mvnw clean verify</span> <span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">en consola y el resultado debería ser similar a lo siguiente:</span></p>
<p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><span style="border: none;overflow: hidden;width: 624px;height: 425px"><img loading="lazy" decoding="async" style="margin-left: 0px;margin-top: 0px" src="https://lh6.googleusercontent.com/A-uPXAfEVj-8thnTrTS5TFdDBaLlOSiSGxEhWgX891C1gHGHZBAZ8FW6YIfCTicPPC-aKijpAwFcmu-c6jHI61srR4emh1_aG_EAulKbc4Ko19b2W8UqOPm8R48mVjnhqLdHNSFjQbW-S5mc9Kpxw6mELhZy4qyEG4n2sFgcnyQY_3DBYG7Zna5Bp-FCdw" width="624" height="425"></span></span></p>
<p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Podemos comprobar que no encuentra la definición de pasos y nos sugiere implementarlos de acuerdo a sus recomendaciones.</span></p>
<p><b style="font-weight: normal">&nbsp;</b></p>
<ol style="margin-top: 0;margin-bottom: 0;padding-inline-start: 48px" start="6">
<li dir="ltr" style="list-style-type: decimal;font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt" role="presentation"><span style="font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Implementación de pasos (steps ó glue code)</span></p>
</li>
</ol>
<p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Los pasos o steps es el mapeo de cada paso del escenario definido en el archivo </span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: italic;font-variant: normal;text-decoration: none;vertical-align: baseline">.feature</span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">, ésta clase tiene la notación </span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">@CucumberContextConfiguration</span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> que hace que Cucumber la use como configuración de contexto de Spring.</span></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Creamos el archivo </span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">DemoSteps.java</span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> en </span><span style="font-size: 11pt;font-family: Arial;color: #4a86e8;background-color: transparent;font-weight: 400;font-style: italic;font-variant: normal;text-decoration: none;vertical-align: baseline">src/test/&lt;paquete&gt;/cucumber/stepDefs:</span></p>
<p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt">
</p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">@</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">CucumberContextConfiguration</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">public</span> <span style="font-size: 9.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">class</span> <span style="font-size: 9.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">DemoSteps</span> <span style="font-size: 9.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">extends</span> <span style="font-size: 9.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">CucumberSpringConfiguration</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> {</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt">
</p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">private</span> <span style="font-size: 9.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">String</span> <span style="font-size: 9.5pt;font-family: 'Courier New';color: #9cdcfe;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">username</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">private</span> <span style="font-size: 9.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">ResponseEntity</span> <span style="font-size: 9.5pt;font-family: 'Courier New';color: #9cdcfe;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">response</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt">
</p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Given</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">(</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #ce9178;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&#8220;client wants to write username&#8221;</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">)</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">public</span> <span style="font-size: 9.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">void</span> <span style="font-size: 9.5pt;font-family: 'Courier New';color: #dcdcaa;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">clientWantsToWriteAGreeting</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">(){</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;username = </span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #ce9178;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&#8220;user001&#8221;</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt">
</p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">When</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">(</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #ce9178;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&#8220;client calls greeting endpoint&#8221;</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">)</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">public</span> <span style="font-size: 9.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">void</span> <span style="font-size: 9.5pt;font-family: 'Courier New';color: #dcdcaa;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">clientCallsToGreetingEndpoint</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">() {</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response = </span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #9cdcfe;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">testRestTemplate</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">.</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #dcdcaa;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">getForEntity</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">(</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #ce9178;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&#8220;/greeting/&#8221;</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> + username, </span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #9cdcfe;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">String</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">.</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #9cdcfe;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">class</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">);</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt">
</p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Then</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">(</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #ce9178;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&#8220;client receives hello text and username&#8221;</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">)</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">public</span> <span style="font-size: 9.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">void</span> <span style="font-size: 9.5pt;font-family: 'Courier New';color: #dcdcaa;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">clientReceivesHelloTextAndGreeting</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">() {</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #9cdcfe;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Assertions</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">.</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #dcdcaa;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">assertEquals</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">(</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #ce9178;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&#8220;hello &#8220;</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> + username, </span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #9cdcfe;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">response</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">.</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #dcdcaa;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">getBody</span><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">());</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 9.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;}</span></p>
<p><b style="font-weight: normal">&nbsp;</b></p>
<ol style="margin-top: 0;margin-bottom: 0;padding-inline-start: 48px" start="7">
<li dir="ltr" style="list-style-type: decimal;font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt" role="presentation"><span style="font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Implementación de Rest API controller</span></p>
</li>
</ol>
<p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Creamos una clase controlador </span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">DemoController.java</span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> con un método GET /greeting en </span><span style="font-size: 11pt;font-family: Arial;color: #4a86e8;background-color: transparent;font-weight: 400;font-style: italic;font-variant: normal;text-decoration: none;vertical-align: baseline">src/main/java/&lt;paquete&gt;/web</span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> que retorna una cadena con un saludo:</span></p>
<p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt">
</p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;@</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">RestController</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">public</span> <span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">class</span> <span style="font-size: 10.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">DemoController</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> {</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt">
</p><p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">GetMapping</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">(</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #ce9178;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&#8220;/greeting/{username}&#8221;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">)</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #569cd6;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">public</span> <span style="font-size: 10.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">String</span> <span style="font-size: 10.5pt;font-family: 'Courier New';color: #dcdcaa;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">greeting</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">(@</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">PathVariable</span> <span style="font-size: 10.5pt;font-family: 'Courier New';color: #4ec9b0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">String</span> <span style="font-size: 10.5pt;font-family: 'Courier New';color: #9cdcfe;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">username</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">){</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #c586c0;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">return</span> <span style="font-size: 10.5pt;font-family: 'Courier New';color: #ce9178;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&#8220;hello &#8220;</span><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> + username;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 10.5pt;font-family: 'Courier New';color: #d4d4d4;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">&nbsp;&nbsp;&nbsp;}</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286;text-align: justify;background-color: #1e1e1e;margin-top: 0pt;margin-bottom: 0pt">
</p><p><b style="font-weight: normal"></b></p>
<p><b style="font-weight: normal"><br></b></p>
<p><b style="font-weight: normal"></b></p>
<ol style="margin-top: 0;margin-bottom: 0;padding-inline-start: 48px" start="8">
<li dir="ltr" style="list-style-type: decimal;font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt" role="presentation"><span style="font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Ejecución</span></p>
</li>
</ol>
<p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Una vez listo toda la implementación, ejecutar </span><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: #ffff00;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">./mvnw clean verify</span> <span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">y obtendremos lo siguiente:</span></p>
<p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><span style="border: none;overflow: hidden;width: 702px;height: 313px"><img loading="lazy" decoding="async" style="margin-left: 0px;margin-top: 0px" src="https://lh6.googleusercontent.com/Q9I6lUDruL8SJqW4CmCl7UXGGJ0fT74tUK_OtqBpnJbXoycyddTDg6qP9e2Q0XcL6stHTq9wFr4fUbMz_JWzGIWNNnBJ0hWr5R6C3GRBTM7kCThi8BrNCwaF_zgt-NOOQHqBmn1IiLddY7KbHqGhBtWdRkhTOjXHD8K6YobeUpdbwUVoV0yJoOvt32IM1g" width="702" height="313"></span></span></p>
<p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Si se usa IntelliJ Idea, al ejecutar los test de Cucumber implementados, como resultado se obtendrá algo similar a esto:</span></p>
<p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><span style="border: none;overflow: hidden;width: 474px;height: 179px"><img loading="lazy" decoding="async" style="margin-left: 0px;margin-top: 0px" src="https://lh5.googleusercontent.com/ln0j_Ef8X-pqzln2SndI6S-ziZoFAuKXY7GJLZGdI2SMwo46JPkJQnKHees8HB0bl_io_yA0VcsSNpUEVWJUAsSlrmrFzWk-WU5dQTMTIgREla549knDl4TokFNOGno_O-YUzTkGO05u2u-zSeByj5zi0wdC28f1D6J9vTYjowW50KyliLJkIj4i2tnJ5w" width="474" height="179"></span></span></p>
<p><b style="font-weight: normal">&nbsp;</b></p>
<ol style="margin-top: 0;margin-bottom: 0;padding-inline-start: 48px" start="9">
<li dir="ltr" style="list-style-type: decimal;font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt" role="presentation"><span style="font-size: 16pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Conclusiones</span></p>
</li>
</ol>
<p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Los tests de aceptación son una herramienta importante si el objetivo es integrar al equipo de negocio y al equipo de desarrollo, mejorando así el planteamiento de los escenarios, requerimientos y casos de análisis.&nbsp;</span></p>
<p><b style="font-weight: normal">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 0pt;margin-bottom: 0pt"><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">En éste tutorial hemos planteado un caso básico de implementación y la configuración de Cucumber, Spring Boot y JUnit 5 y así obtener una arquitectura básica o referencial para futuras implementaciones.</span></p>
<p><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline">El código fuente se puede encontrar en </span><a href="https://github.com/softwareevolutivo/spring-boot-cucumber" target="_blank">github.com</a><span style="font-size: 11pt;font-family: Arial;color: #000000;background-color: transparent;vertical-align: baseline">.</span></p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		<p>The post <a href="https://softwareevolutivo.com.ec/cucumber-spring-boot-2-junit-5/">Cucumber + Spring boot 2 + Junit 5</a> appeared first on <a href="https://softwareevolutivo.com.ec">Software Evolutivo</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://softwareevolutivo.com.ec/cucumber-spring-boot-2-junit-5/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>UX: Experiencia de Usuario una Prioridad en el Desarrollo de Sistemas Organizacionales</title>
		<link>https://softwareevolutivo.com.ec/ux-experiencia-de-usuario-una-prioridad-en-el-desarrollo-de-sistemas-organizacionales/</link>
					<comments>https://softwareevolutivo.com.ec/ux-experiencia-de-usuario-una-prioridad-en-el-desarrollo-de-sistemas-organizacionales/#comments</comments>
		
		<dc:creator><![CDATA[Bryan Diaz]]></dc:creator>
		<pubDate>Thu, 27 Oct 2022 21:07:21 +0000</pubDate>
				<category><![CDATA[Aplicaciones Web]]></category>
		<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[Frontend]]></category>
		<category><![CDATA[Tecnología]]></category>
		<category><![CDATA[Experiencia de Usuario]]></category>
		<category><![CDATA[UX]]></category>
		<guid isPermaLink="false">https://softwareevolutivo.com.ec/?p=6552</guid>

					<description><![CDATA[<p>Actualmente, la compra o alquiler de sistemas dentro de las organizaciones a través de plataformas virtuales presenta un mayor índice de demanda, de modo que, gracias a la pandemia del COVID-19, los usuarios son más flexibles en sus acciones o tareas a la hora de buscar productos o servicios que deseen adquirir. </p>
<p>The post <a href="https://softwareevolutivo.com.ec/ux-experiencia-de-usuario-una-prioridad-en-el-desarrollo-de-sistemas-organizacionales/">UX: Experiencia de Usuario una Prioridad en el Desarrollo de Sistemas Organizacionales</a> appeared first on <a href="https://softwareevolutivo.com.ec">Software Evolutivo</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="6552" class="elementor elementor-6552">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-058640b elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="058640b" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-18f6954" data-id="18f6954" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-50bead3 elementor-widget elementor-widget-text-editor" data-id="50bead3" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"><span style="font-size: 11pt;font-family: 'Times New Roman';color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Actualmente, la compra o alquiler de sistemas dentro de las organizaciones a través de plataformas virtuales presenta un mayor índice de demanda, de modo que, gracias a la pandemia del COVID-19, los usuarios son más flexibles en sus acciones o tareas a la hora de buscar productos o servicios que deseen adquirir. Razón por la cual, para efectuar una buena negociación y una venta exitosa, se necesita brindarle a sus compradores una herramienta innovadora y una experiencia de usuario rápida, instantánea, y simple para cualquier tipo de dispositivo. </span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"><span style="font-size: 11pt;font-family: 'Times New Roman';color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Si bien es cierto, al momento de desarrollar un sistema, tenemos en cuenta todos los lineamientos necesarios para que éste cumpla con los requerimientos del cliente; no obstante, nos hacemos preguntas como: ¿Qué tan difícil será su manejo?, ¿Será agradable para los usuarios? o ¿Estará clara la información plasmada o presentada?, en fin… un sinnúmero de preguntas que en la mayoría de los casos  no consideramos de gran importancia al momento de desarrollar nuestro producto. </span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"><span style="font-size: 11pt;font-family: 'Times New Roman';color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Es por ello que, a partir de esta iniciativa resulta de vital importancia considerar al UX como punto de partida indispensable en el desarrollo de un producto, de manera que, dicho término aparte de que se usa muy a menudo en el mundo tecnológico; es una prioridad en el desarrollo de sistemas, ya que gracias a ello los diseñadores ahora son más consciente de cómo su trabajo impacta al usuario y cuales son sus necesidades.Hay que destacar que, el trabajo del diseño de UX se centra en encontrar un equilibrio entre las necesidades del usuario, las necesidades comerciales y las capacidades técnicas, de manera que hallar el balance perfecto crea una experiencia de usuario beneficiosa y le permite al negocio alcanzar sus objetivos.</span></p><p><b style="font-weight: normal"> </b></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"><span style="font-size: 11pt;font-family: 'Times New Roman';color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">¿Qué es UX o Experiencia de Usuario? </span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"><span style="font-size: 11pt;font-family: 'Times New Roman';color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Nielsen Norman Group, empresa estadounidense de consultoría en interfaz de usuario (UI) y experiencia de usuario define a UX como una de las experiencias de usuario más completas que coexisten a nivel global, puesto que que incluye todos los aspectos de la interacción del usuario final con la empresa, con sus servicios y con sus productos. Por ello, su término se menciona con mayor frecuencia en áreas relacionadas con tecnología, tales como teléfonos inteligentes, computadoras, software o sitios web. Se debe tener presente que, la experiencia del usuario no es solo un campo bastante nuevo, sino también un área volátil, ya que, cambia rápidamente debido a los avances tecnológicos, los nuevos tipos de interacción y las preferencias del usuario.</span></p><p> </p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"><span style="font-size: 11pt;font-family: 'Times New Roman';color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Dicho de otra manera, el UX no es nada más que la experiencia innovadora que obtiene un usuario en los distintos escenarios al momento de utilizar un producto, de manera que, dicha acción les brinda una respuesta/solución a sus preguntas o problemas. Según Yudica (2016), esto suscita porque los diseñadores se encargan de proporcionarle al internauta una variabilidad de soluciones frente a los diversos aspectos comunicativos que puede presentar el mismo con un determinado producto o servicio (incluida la usabilidad, accesibilidad, y capacidad de encontrar/aprender/recordar); por ende, su principal función no es otra cosa que hacer que el producto sea amigable, satisfactorio, accesible y útil para el usuario.</span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"><span style="font-size: 11pt;font-family: 'Times New Roman';color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><span style="font-size: 11pt;background-color: transparent;vertical-align: baseline"><span style="border: none;overflow: hidden;width: 539px;height: 404px"><img loading="lazy" decoding="async" style="margin-left: 0px;margin-top: 0px" src="https://lh3.googleusercontent.com/IvP07lxJ9wjM2C4QUBFExheWhu6kdK9P0kap5kYywRsFb_IT09EPWLDd_yuxzTz4sOz92RAgeHmxv5QwXEsyvW0RdyLCX6mA1EHbciPFwZjBNH-XCByXjybxD9LlU1fM0IfZZN7dB4sEWzz2htltFjwbsIm_5N3y4Cc7kBC8XZ8zYZZj3Me04oiHjQ" width="539" height="404" /></span></span><br /></span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"><span style="font-size: 11pt;font-family: 'Times New Roman';color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Prototipos UX </span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"><span style="font-size: 11pt;font-family: 'Times New Roman';color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Ayudan a capturar visualmente los objetivos comerciales y alinearlos con las expectativas o necesidades de los usuarios, para así,  tener conocimiento del grado de satisfacción que exhiben los mismo con el producto creado. Hay que tener en cuenta que el coste de modificar un prototipo es inferior al coste de cambiar un producto digital subido a producción, por lo que supone una ventaja de ahorro de costes durante el desarrollo.</span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"><span style="border: none;overflow: hidden;width: 186px;height: 459px"> <img loading="lazy" decoding="async" style="margin-left: 0px;margin-top: 0px" src="https://lh4.googleusercontent.com/4pkFGn1HGFcv7nVe-F4BnbpZvyb9BTQGd5UMpGZlZAQJ98Vv9pR3yLZSwLudG7gnXwdx07P8a6nDqGBlTEH3WiH-fCB172nMUISNfDPYdLClin3oizy9M7_RVEer2UOMWi3FdHMN1qAuaaaoNq0KkmV-B168uVRTIApN4nrpUAzy8gVNIQDigDjo-g" width="186" height="459" /></span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"><span style="font-size: 11pt;font-family: 'Times New Roman';color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">El diseño de UX no solo prioriza las necesidades del usuario, sino también las capacidades metodológicas y ausencias de un negocio, ya que no todos los individuos poseen las mismas competencias técnicas para brindar una solución ideal a cada problemática; ni todas las empresas poseen el suficiente recurso monetario para invertir constantemente en los formación técnica/profesional de todos sus colaboradores. </span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"><span style="font-size: 11pt;font-family: 'Times New Roman';color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"> Por este motivo, el trabajo del diseño de UX se centra en encontrar un equilibrio entre las necesidades del usuario, las necesidades comerciales y las capacidades técnicas, de manera que hallar el balance perfecto crea una experiencia de usuario beneficiosa (satisface sus necesidades) y le permite al negocio alcanzar sus objetivos, siempre y cuando esta se encuentre dentro de las capacidades técnicas de la empresa. </span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"><span style="font-size: 11pt;font-family: 'Times New Roman';color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Se debe tener en cuenta que el diseño UX, es un proceso que inicia con la comprensión de los usuarios, luego con el diseño de interfaces, y, finalmente con la prueba para ver si el mismo logra satisfacer las necesidades de los usuarios; de modo que aquello representa una parte integral del proceso de desarrollo del producto. </span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"> </p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"><span style="font-size: 11pt;font-family: 'Times New Roman';color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">A su vez, para crear un diseño fácil de usar, los diseñadores de UX deben participar en el proceso de principio a fin. Por ende, es conveniente realizar investigaciones sobre cómo los usuarios buscan un producto, navegan por las páginas, buscan detalle de los productos, e interactúan con el sistema; ya que tras la investigación y el análisis exhaustivo de los datos y registros obtenidos, deberemos de ser capaces de generar diseños y experiencias que satisfagan las necesidades de los usuarios. </span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"><span style="font-size: 11pt;font-family: 'Times New Roman';color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Para ofrecer buenos resultados en el proceso de desarrollo de un producto se debe considerar lo siguiente: </span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"><span style="font-size: 11pt;font-family: 'Times New Roman';color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><span style="border: none;overflow: hidden;width: 433px;height: 323px"><img loading="lazy" decoding="async" style="margin-left: 0px;margin-top: 0px" src="https://lh6.googleusercontent.com/Rsk1lZhBnpl8_Hnh6ZPoXb9lSCjclCDs_ORhTWU2Nx-oFlwjWc2A_8uGXdfwwU3h4SP7VzytoAZP1VAUR-pP1P-eno8N7vl-_YCw4-00nfsnxrKRen890lal--uvgUf38r9_jOZYvztYOqh3e7j1eXWeMqNjhANRveKJer1wIhhs21qttYJRdLrj3A" width="433" height="323" /></span></span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"><span style="font-size: 11pt;font-family: 'Times New Roman';color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Relación Esfuerzo – Beneficio en UX</span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"><span style="font-size: 11pt;font-family: 'Times New Roman';color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Cuando diseñamos tomando en consideración los principios de usabilidad, lo que buscamos es reducir al mínimo las barreras de interacción, y por lo tanto el esfuerzo del usuario para completar tareas interactivas, ya que, el principal objetivo es evitar la frustración del usuario. En la mayoría de los casos el producto ideal es el que se adapta al usuario; no obstante, en ocasiones es imprescindible que sea el usuario quien se adapte al producto, de manera que se pretende reducir el tiempo de dedicación y esfuerzo para aprender cómo usarlo. Debido a aquello,  es posible analizar la experiencia de usuario únicamente en términos de facilidad de uso sin tener en consideración cuál es el beneficio o valor de uso, puesto que, la calidad e idoneidad de un diseño viene determinada por la relación esfuerzo-beneficio y es sólo cuando el beneficio o valor percibido supere el esfuerzo requerido, podremos hablar de experiencias de usuario satisfactorias.</span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"><span style="font-size: 11pt;font-family: 'Times New Roman';color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">UX es igual a resolver problemas </span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"><span style="font-size: 11pt;font-family: 'Times New Roman';color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Es importante pensar en el usuario en cada parte del proceso de realización de un producto, ya que, ponernos en el lugar del usuario al momento de utilizar dicho producto para conocer la forma en la que va a interactuar con el mismo,  mejora de una manera temprana los posibles problemas que se puedan generar en el  usuario con el producto terminado.Y es ahí, donde parte la importancia para UX, de llevar un proceso e involucrar al usuario en cada etapa del procedimiento, y no simplemente tener la idea de pensar en el usuario. </span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"><span style="font-size: 11pt;font-family: 'Times New Roman';color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Diseño de experiencia no solamente se basa en satisfacer al usuario sino también a cumplir con los objetivos del negocio, el diseñador de experiencia hace de puente entre el usuario y el cliente que nos contrata.</span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"><span style="font-size: 11pt;font-family: 'Times New Roman';color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Conclusión</span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"><span style="font-size: 11pt;font-family: 'Times New Roman';color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">UX resulta ser de gran prioridad para las organizaciones, ya que se obtiene sistemas amigables-fáciles de usar, garantiza la fluidez-eficiencia en el diseño, y exhibe una gran demanda dentro del mercado laboral, ya que actualmente los clientes buscan constantemente satisfacer sus necesidades y solucionar sus problemas de forma breve y simple. Por ello, se caracteriza por ser una experiencia innovadora que obtiene un  usuario en los distintos escenarios al momento de utilizar un sistema, de manera que, dicha acción les brinda una respuesta/solución a sus preguntas o problemas. Cabe recalcar que, aquello suscita porque los diseñadores se encargan de proporcionarle al internauta una variabilidad de soluciones frente a los diversos aspectos comunicativos que puede presentar el mismo con un determinado producto o servicio (incluida la usabilidad, accesibilidad, y capacidad de encontrar/aprender/recordar); por ende, su principal función no es otra cosa que hacer que el producto sea amigable, satisfactorio, accesible y útil para el usuario</span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"><span style="font-size: 11pt;font-family: 'Times New Roman';color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Por su parte, la implementación del UX se enfoca en las acciones que realiza el usuario delante de la pantalla, de manera que al tener en cuenta su uso, nivel de afectación y grado de  aceptación; no solo genera beneficios para los usuarios, sino que también  para las empresas u organizaciones, puesto que, el examinar los diferentes escenarios a los que puede estar expuesto el usuario y el brindar solución cada uno de ellos, les genera buena reputación en el mercado laboral. Teniendo presente que el diseño de experiencia no solamente se basa en satisfacer al usuario sino también a cumplir con los objetivos del negocio.</span></p><p dir="ltr" style="line-height: 1.38;text-align: justify;margin-top: 12pt;margin-bottom: 12pt"><span style="font-size: 11pt;font-family: 'Times New Roman';color: #000000;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><b style="font-weight: normal"> </b></span></p><p dir="ltr" style="line-height: 1.38;margin-top: 12pt;margin-bottom: 12pt"><span style="font-size: 11pt;font-family: 'Times New Roman';color: #000000;background-color: transparent;font-weight: bold;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline">Referencia </span></p><p dir="ltr" style="line-height: 1.38;margin-top: 12pt;margin-bottom: 12pt"> </p><ul style="margin-top: 0;margin-bottom: 0"><li dir="ltr" style="list-style-type: disc;font-size: 12pt;font-family: 'Times New Roman';color: #0000ff;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><p dir="ltr" style="line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt" role="presentation"><a style="text-decoration: none" href="https://yusef.es/Experiencia_de_Usuario.pdf"><span style="font-size: 12pt;font-family: 'Times New Roman';color: #0000ff;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: underline;vertical-align: baseline">https://yusef.es/Experiencia_de_Usuario.pdf</span></a></p></li><li dir="ltr" style="list-style-type: disc;font-size: 12pt;font-family: 'Times New Roman';color: #0000ff;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><p dir="ltr" style="line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt" role="presentation"><a style="text-decoration: none" href="http://webs.ucm.es/BUCM/revcul/e-learning-innova/224/art3403.pdf"><span style="font-size: 12pt;font-family: 'Times New Roman';color: #0000ff;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: underline;vertical-align: baseline">http://webs.ucm.es/BUCM/revcul//e-learning-innova/224/art3403.pdf</span></a></p></li><li dir="ltr" style="list-style-type: disc;font-size: 12pt;font-family: 'Times New Roman';color: #0000ff;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><p dir="ltr" style="line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt" role="presentation"><a style="text-decoration: none" href="https://blog.hubspot.es/marketing/experiencia-de-usuario-ux"><span style="font-size: 12pt;font-family: 'Times New Roman';color: #0000ff;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: underline;vertical-align: baseline">https://blog.hubspot.es/marketing/experiencia-de-usuario-ux</span></a></p></li><li dir="ltr" style="list-style-type: disc;font-size: 12pt;font-family: 'Times New Roman';color: #0000ff;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><p dir="ltr" style="line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt" role="presentation"><a style="text-decoration: none" href="https://www.scielo.sa.cr/pdf/tem/v30s1/0379-3982-tem-30-s1-49.pdf"><span style="font-size: 12pt;font-family: 'Times New Roman';color: #0000ff;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: underline;vertical-align: baseline">https://www.scielo.sa.cr/pdf/tem/v30s1/0379-3982-tem-30-s1-49.pdf</span></a></p></li><li dir="ltr" style="list-style-type: disc;font-size: 12pt;font-family: 'Times New Roman';color: #0000ff;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><p dir="ltr" style="line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt" role="presentation"><a style="text-decoration: none" href="https://amgerpro.com/el-53-de-nosotros-abandonara-una-web-si-tarda-mas-de-3-segundos-en-cargar/"><span style="font-size: 12pt;font-family: 'Times New Roman';color: #0000ff;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: underline;vertical-align: baseline">https://amgerpro.com/el-53-de-nosotros-abandonara-una-web-si-tarda-mas-de-3-segundos-en-cargar/</span></a></p></li><li dir="ltr" style="list-style-type: disc;font-size: 12pt;font-family: 'Times New Roman';color: #0000ff;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><p dir="ltr" style="line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt" role="presentation"><a style="text-decoration: none" href="https://www.scielo.sa.cr/pdf/tem/v30s1/0379-3982-tem-30-s1-49.pdf"><span style="font-size: 12pt;font-family: 'Times New Roman';color: #0000ff;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: underline;vertical-align: baseline">https://www.scielo.sa.cr/pdf/tem/v30s1/0379-3982-tem-30-s1-49.pdf</span></a></p></li><li dir="ltr" style="list-style-type: disc;font-size: 12pt;font-family: 'Times New Roman';color: #0000ff;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: none;vertical-align: baseline"><p dir="ltr" style="line-height: 1.38;margin-top: 0pt;margin-bottom: 0pt" role="presentation"><a style="text-decoration: none" href="https://freed.tools/blogs/ux-cx/rediseno-sistema-colaborativo"><span style="font-size: 12pt;font-family: 'Times New Roman';color: #0000ff;background-color: transparent;font-weight: 400;font-style: normal;font-variant: normal;text-decoration: underline;vertical-align: baseline">https://freed.tools/blogs/ux-cx/rediseno-sistema-colaborativ</span></a>o</p></li></ul>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		<p>The post <a href="https://softwareevolutivo.com.ec/ux-experiencia-de-usuario-una-prioridad-en-el-desarrollo-de-sistemas-organizacionales/">UX: Experiencia de Usuario una Prioridad en el Desarrollo de Sistemas Organizacionales</a> appeared first on <a href="https://softwareevolutivo.com.ec">Software Evolutivo</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://softwareevolutivo.com.ec/ux-experiencia-de-usuario-una-prioridad-en-el-desarrollo-de-sistemas-organizacionales/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
		<item>
		<title>JBoss EAP: Instalación y configuración básica</title>
		<link>https://softwareevolutivo.com.ec/jboss-eap-instalacion-y-configuracion-basica/</link>
					<comments>https://softwareevolutivo.com.ec/jboss-eap-instalacion-y-configuracion-basica/#respond</comments>
		
		<dc:creator><![CDATA[Jorge Aguilar]]></dc:creator>
		<pubDate>Thu, 12 May 2022 00:59:03 +0000</pubDate>
				<category><![CDATA[Aplicaciones Web]]></category>
		<category><![CDATA[Infrarestructura de Software]]></category>
		<category><![CDATA[Tecnología]]></category>
		<category><![CDATA[java]]></category>
		<category><![CDATA[jboss]]></category>
		<category><![CDATA[redhat]]></category>
		<guid isPermaLink="false">https://softwareevolutivo.com.ec/?p=1568</guid>

					<description><![CDATA[<p>JBoss EAP es una plataforma de código abierto que ofrece seguridad, escalabilidad y rendimiento a nivel empresarial para aplicaciones Java. Incluyen todo lo que se necesita para crear, ejecutar, implementar y administrar aplicaciones Java empresariales en cualquier entorno.</p>
<p>The post <a href="https://softwareevolutivo.com.ec/jboss-eap-instalacion-y-configuracion-basica/">JBoss EAP: Instalación y configuración básica</a> appeared first on <a href="https://softwareevolutivo.com.ec">Software Evolutivo</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="1568" class="elementor elementor-1568">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-60d3ec58 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="60d3ec58" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-49efc247" data-id="49efc247" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-5a58dcf5 elementor-widget elementor-widget-text-editor" data-id="5a58dcf5" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>En esta primera entrega, de la serie de artículos relacionados a&nbsp;<a href="https://en.wikipedia.org/wiki/JBoss_Enterprise_Application_Platform" target="_blank">JBoss Enterprise Application Platform</a>&nbsp;(EAP), vamos a considerar la instalación y configuración inicial del producto, de tal manera que podamos contar con los servicios suficientes para un despliegue en un ambiente de pruebas o que sea el primer paso para tener una instancia candidata a producción.</p>
<p>JBoss EAP es una plataforma de código abierto que ofrece seguridad, escalabilidad y rendimiento a nivel empresarial para aplicaciones Java. Incluyen todo lo que se necesita para crear, ejecutar, implementar y administrar aplicaciones Java empresariales en cualquier entorno.</p>
<p>Si bien JBoss EAP está disponible como imagen de contenedor o como un operador de Kubernetes u Openshift, en este caso vamos a utilizar los binarios tradicionales para hacer una instalación desde cero, lo que nos permitirá tener un mayor entendimiento de los requisitos para su operación.</p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-0539c34 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="0539c34" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-246d713" data-id="246d713" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-725233d elementor-widget elementor-widget-heading" data-id="725233d" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Requisitos</h2>				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-037ac8c elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="037ac8c" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-23c37ca" data-id="23c37ca" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-7156934 elementor-widget elementor-widget-text-editor" data-id="7156934" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Antes de iniciar, se espera que podamos contar con lo siguiente:</span></p>
<ol>
<li dir="ltr" style="line-height: 1.38;"><span style="background-color: transparent; color: #000000; font-family: Arial; font-size: 11pt; font-style: normal; font-weight: 400; white-space: pre-wrap;">Servidor Linux: Los comandos que se presentan son compatibles con CentOS 8 o Red Hat Enterprise Linux 8</span></li>
<li dir="ltr" style="line-height: 1.38;"><span style="font-family: Arial; font-style: normal; font-weight: 400; background-color: transparent; font-variant-numeric: normal; font-variant-east-asian: normal; font-size: 11pt; white-space: pre-wrap;">Disponer del utilitario </span><span style="font-family: Arial; font-style: normal; background-color: transparent; font-variant-numeric: normal; font-variant-east-asian: normal; font-size: 11pt; font-weight: bold; white-space: pre-wrap;">unzip</span><span style="font-family: Arial; font-style: normal; font-weight: 400; background-color: transparent; font-variant-numeric: normal; font-variant-east-asian: normal; font-size: 11pt; white-space: pre-wrap;"> para descomprimir el binario de JBoss EAP</span></li>
<li dir="ltr" style="line-height: 1.38;"><span style="font-family: Arial; font-style: normal; font-weight: 400; background-color: transparent; font-variant-numeric: normal; font-variant-east-asian: normal; font-size: 11pt; white-space: pre-wrap;">Tener instalado y configurado Java 1.8 u 11. El detalle de las configuraciones soportadas se pueden encontrar en la siguiente enlace: </span><a style="background-color: transparent; font-family: Arial; font-size: 11pt; white-space: pre;" href="https://access.redhat.com/articles/2026253#EAP_74" target="_blank" rel="noopener"><span style="font-size: 11pt; font-family: Arial; color: #1155cc; background-color: transparent; font-weight: 400; font-style: normal; font-variant-numeric: normal; font-variant-east-asian: normal; text-decoration-line: underline; text-decoration-skip-ink: none; white-space: pre-wrap;">https://access.redhat.com/articles/2026253#EAP_74</span></a></li>
<li dir="ltr" style="line-height: 1.38;" role="presentation"><span style="background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-weight: 400; white-space: pre-wrap;">Archivo empaquetado de </span><span style="background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-weight: bold; white-space: pre-wrap;">JBoss EAP 7.4</span><span style="background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-weight: 400; white-space: pre-wrap;">: Se puede descargar el </span><span style="background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-weight: bold; white-space: pre-wrap;">Zip File</span><span style="background-color: transparent; font-family: Arial; font-size: 11pt; font-style: normal; font-variant-numeric: normal; font-variant-east-asian: normal; font-weight: 400; white-space: pre-wrap;"> desde la siguiente dirección: </span><a style="font-family: Arial; font-style: normal; font-weight: 400;" href="https://developers.redhat.com/products/eap/download" target="_blank" rel="noopener"><span style="font-size: 11pt; font-family: Arial; color: #1155cc; background-color: transparent; font-weight: 400; font-style: normal; font-variant-numeric: normal; font-variant-east-asian: normal; text-decoration-line: underline; text-decoration-skip-ink: none; white-space: pre-wrap;">https://developers.redhat.com/products/eap/download</span></a></li>
</ol>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-ca27f22 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="ca27f22" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-1b2b955" data-id="1b2b955" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-68fc5f0 elementor-widget elementor-widget-heading" data-id="68fc5f0" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Configuración por defecto</h2>				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-72e0b2b elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="72e0b2b" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-6a8aa8f" data-id="6a8aa8f" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-5f6e3eb elementor-widget elementor-widget-text-editor" data-id="5f6e3eb" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>JBoss EAP mantiene la siguiente configuración inicial:</p>
<ul>
<li>No existen usuarios de administración de JBoss EAP, es necesario crear al menos uno para administrar el servicio remotamente. Este usuario será creado más adelante.</li>
<li>Solamente se escucha en la interfaz 127.0.0.1 (localhost), es decir que solamente están disponibles los servicios desde el mismo servidor.</li>
<li>Los puertos de los servicios principales son:
<ul>
<li>Aplicaciones HTTP: 8080</li>
<li>Aplicaciones HTTPS: 8443</li>
<li>Administración (Web y por línea de comandos): 9990</li>
</ul>
</li>
</ul>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-ab89ddc elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="ab89ddc" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-d0259f5" data-id="d0259f5" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-acf3462 elementor-widget elementor-widget-heading" data-id="acf3462" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Alcance de la instalación y configuración</h2>				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-fbcb74c elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="fbcb74c" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-af3b35f" data-id="af3b35f" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-c2fe63c elementor-widget elementor-widget-text-editor" data-id="c2fe63c" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p>Esta guía cubre los siguientes puntos:</p>
<ul>
<li>Instalación de los binarios</li>
<li>Creación del usuario administrador de JBoss EAP</li>
<li>Apertura de las interfaces de red para el acceso remoto</li>
</ul>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-bbac45e elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="bbac45e" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-a93fd7d" data-id="a93fd7d" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-ef99fe5 elementor-widget elementor-widget-heading" data-id="ef99fe5" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Procedimiento de instalación y configuración</h2>				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-6dc3adc elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="6dc3adc" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-1591c72" data-id="1591c72" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-fe1e3cd elementor-widget elementor-widget-heading" data-id="fe1e3cd" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">Instalación de los binarios</h3>				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-5e59745 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="5e59745" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-1de1057" data-id="1de1057" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-93b8d0e elementor-widget elementor-widget-text-editor" data-id="93b8d0e" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<ol>
<li>
<p>Se va a necesitar un usuario de sistema operativo (En este caso eap), diferente al usuario root, para levantar los servicios. Como el usuario root ejecutamos este y los siguientes comandos:</p>
<p><code># useradd eap</code></p>
<p>NOTA: Este usuario es diferente al usuario administrador de JBoss EAP (eapadmin) que se creará en el punto 4 de esta sección.</p>
</li>
<li>
<p>Creación del directorio Home de JBoss EAP, descompresión del archivo empaquetado y asignación de permisos al usuario eap:</p>
<p><code>
# mkdir /opt/jboss/<br />
# cd /opt/jboss/<br />
# unzip /tmp/jboss-eap-7.4.0.zip<br />
# chown -R eap:eap /opt/jboss/
</code></p>
</li>
<li>
<p>Configuración de variables de ambiente para que el usuario eap disponga de los ejecutables de JBoss EAP en el PATH de su sesión:</p>
<p><code>
# echo 'export EAP_HOME=/opt/jboss/jboss-eap-7.4' &gt;&gt; ~eap/.bash_profile<br />
# echo 'export PATH=$PATH:$EAP_HOME/bin' &gt;&gt; ~eap/.bash_profile
</code></p>
</li>
<li>
<p>Crear el usuario administrador de JBoss EAP (eapadmin) con su respectiva contraseña. Hacemos el cambio al usuario eap del sistema operativo para luego ejecutar la creación del usuario:</p>
<p><code>
# su - eap<br />
$ add-user.sh -u 'eapadmin' -p '********'
</code></p>
</li>
</ol>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-b4019b5 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="b4019b5" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-351803f" data-id="351803f" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-abd197e elementor-widget elementor-widget-heading" data-id="abd197e" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">Inicio del servicio y validación de la configuración de red</h3>				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-1d20718 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="1d20718" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-1bcaed5" data-id="1bcaed5" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-51cb9df elementor-widget elementor-widget-text-editor" data-id="51cb9df" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<ol>
<li>
<p>Utilizando la misma sesión del usuario eap, ejecutamos el script de inicio para subir el servicio en modo Standalone:</p>
<p><code>
$ standalone.sh
</code></p>
<p>NOTA: La terminal quedará ocupada, la dejaremos abierta para no terminar el proceso.</p>
</li>
<li>
<p>Abrimos una nueva sesión con el usuario eap para confirmar los puertos que fueron abiertos por el servicio:</p>
<p><code>
$ ss -ltn | grep -e 8080 -e 8443 -e 9990
</code></p>
<p>Como lo muestra el comando ss, por defecto JBoss EAP escucha solamente en 127.0.0.1 (localhost).</p>
<p>
<img decoding="async" style="margin-left: 0px; margin-top: 0px;" src="https://lh3.googleusercontent.com/JxRaUYd9vZQlI1L8gQjcm9zjbUpbio2vnG2vvZKeupxm3DXT61fJb2bYgp3hpud92GbZkQD3Tt3JowMxyPgQFKwSt5vAUqE6vJR5BiMoi7JiZ_viknN2e1RKLbgQFt78OXHwKAXIa-2ZnxITsQ" /></p>
</li>
</ol>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-99529f4 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="99529f4" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-6626462" data-id="6626462" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-84a0c76 elementor-widget elementor-widget-heading" data-id="84a0c76" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h3 class="elementor-heading-title elementor-size-default">Actualización de la dirección enlazada a las interfaces de red</h3>				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-4f311ec elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="4f311ec" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-985568a" data-id="985568a" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-cea0b72 elementor-widget elementor-widget-text-editor" data-id="cea0b72" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<ol>
<li>
<p>Mediante la administración por línea de comandos (<a href="https://access.redhat.com/documentation/en-us/red_hat_jboss_enterprise_application_platform/7.2/html-single/management_cli_guide/index" target="_blank" rel="noopener">JBoss CLI</a>) vamos a consultar la dirección enlazada a la interfaz pública (public: donde estarán disponibles las aplicaciones, puerto 8080 y 8443) para luego cambiarla por el nombre del servidor (server.example.com en este caso) o por su dirección IP:</p>
<p><code><br />$ jboss-cli.sh --connect<br />[standalone@localhost:9990 /] /interface=public:read-attribute(name=inet-address)<br /></code></p>
<p><img decoding="async" style="margin-left: 0px; margin-top: 0px;" src="https://lh3.googleusercontent.com/amSVm3J6_JGN8ibRMJ-Tk5OdF6H__4SJX6pZNCxWFEGC5RaRdffB4ePoYBOkytTd3YPlbh33fA0XfRw9oB1DUWaVzsPCm4E3nC2WM9V_Fy-3wJV5giHamFwEX8Zxm9pz4h0BgDPdoe3thFJjdQ" /></p>
<p><code><br />[standalone@localhost:9990 /] /interface=public:write-attribute(name=inet-address,value="${jboss.bind.address:server.example.com}")<br /></code></p>
<p><img decoding="async" style="margin-left: 0px; margin-top: 0px;" src="https://lh4.googleusercontent.com/utqXny4O2mFOvxJSTnsbvot9A_eVP81LusdJ3UALLkGJEPC0SExr1mWL0mx2X0bWcu5QqazpJ_7oUGty_8k2BwSnOeV1mULvAu7l6yPUWU1sg9AFvInsSx5KZtfHKhqo5QrliD9Kkpd59ND0rw" /></p>
</li>
<li>
<p>Realizamos algo similar pero con la interfaz de administración (management: servicio de administración, puerto 9990):</p>
<p><code><br />[standalone@localhost:9990 /] /interface=management:read-attribute(name=inet-address)<br /></code></p>
<p><img decoding="async" style="margin-left: 0px; margin-top: 0px;" src="https://lh4.googleusercontent.com/9gnxqQnzm_1gJNzE9czSwv4hrwcS6N7faXypirpfHljYK1ZwoethZq46RYiha0ASMeDpVMBWLEZZ7cxDKAukS3_gwjnxnkRarx9e4AeVqN_LW0lf2OqkDBFUXFKlXtf0up1ge7Of4bAbjI9o3w" /></p>
<p><code><br />[standalone@localhost:9990 /] /interface=management:write-attribute(name=inet-address,value="${jboss.bind.address.management:server.example.com}")<br /></code></p>
<p><img decoding="async" style="margin-left: 0px; margin-top: 0px;" src="https://lh5.googleusercontent.com/hs9zPonezmp9uKmMG1CwyKr5NI91U9-bFWM76Wpi9XvJ2QxRKKyWJcaktSK5DFEKAjmorxpwpcCODsIu5CZXASxlSnoO6kApWXP63Mp8gsth1Honly--tgs9wIsFzFKIPvkiWctL4-p6C-7O_g" /></p>
</li>
<li>
<p>Procedemos a recargar la configuración del servidor ya que los cambios anteriores requieren de un reinicio del servicio de JBoss EAP. Luego de esto, la sesión de JBoss CLI terminará debido a que ya no es válida por el cambio de la interfaz de administración:</p>
<p><code><br />[standalone@localhost:9990 /] reload<br />[disconnected /] exit<br /></code></p>
<p><img decoding="async" style="margin-left: 0px; margin-top: 0px;" src="https://lh6.googleusercontent.com/0OvdRZV7CEDFfiVrzRgi41C48a378TPb1XUzU67U70EDjFZVeZkRJe_RwZnmUGeJ9js3awWj7wgxYCpQd5yqsUmZ00VKk1mmjZguSGslQjYoAZdG_ADxyHVk6Szf_p3KlYbD3j1a1AWOAijUCA" width="401" /></p>
</li>
<li>
<p>Verificamos el cambio en la configuración de red utilizando nuevamente JBoss CLI, la conexión ahora debe indicar el nombre del controller de JBoss EAP (servidor y puerto) donde está el servicio de administración:</p>
<p><code><br />$ jboss-cli.sh --connect --controller=server.example.com:9990<br /><br />[standalone@server.example.com:9990 /] /interface=public:read-attribute(name=inet-address)<br /></code></p>
<p><img decoding="async" style="margin-left: 0px; margin-top: 0px;" src="https://lh3.googleusercontent.com/ybl4awCSj_6VJpvRMaecK8IdtPDeeXVpgygAFXsF9eUKJRXC0We8s4AnrnbtNLBtS0afB64BX2iiSDsRzYKmwWfmDldaTjbKLI2wKSPmqFKgam5JdHw-rDwi-V_3KcWqAU2IH6zlr8wRbhhE8A" /></p>
<p><code><br />[standalone@server.example.com:9990 /] /interface=management:read-attribute(name=inet-address)<br /></code></p>
<p><img decoding="async" style="margin-left: 0px; margin-top: 0px;" src="https://lh5.googleusercontent.com/Ge6xAn6-LwCa4obg1IBFYE8MRGu0YH0SBEx9ngWljR55OFbLdMRYyf-04R76L1NHsBInXFGVnh98vn7cxqcrZ6GE0HbEoEN52Q_AUvsrH9c7EEesjoJOO0MPuRimw6vdi4Rwky9ycsToopbr4g" /></p>
</li>
<li>
<p>Si el servidor Linux tiene levantado el servicio de Firewall será necesario abrir los puertos que utiliza JBoss, para el caso de CentOS 8 o Red Hat Enterprise Linux 8, como usuario root, se puede utilizar lo siguiente:</p>
<p><code><br />
# firewall-cmd --list-ports<br /># firewall-cmd --add-port 8080/tcp<br /># firewall-cmd --add-port 8443/tcp<br /># firewall-cmd --add-port 9990/tcp<br /># firewall-cmd --runtime-to-permanent<br /># firewall-cmd --list-ports<br /></code></p>
<p><img decoding="async" style="margin-left: 0px; margin-top: 0px;" src="https://lh4.googleusercontent.com/e3kd35FLMsASyjOHLTwVVKxOuoxpV4_mqkUjTKVABqGV-zycVYOZqFXPahJmBjt7yYtDf2H9PtMOOZC_jelJA0xgEMD1g_ayBXbs9xSOjuoPEKemCT241x_KFDMiVNDk-_348I6IecYYsdQ68Q" width="420" /></p>
</li>
<li>
<p>Finalmente probamos el acceso a los servicios desde un navegador Web:</p>
<ul>
<li>http://server.example.com:8080/</li>
<li>https://server.example.com:8443/</li>
<li>http://server.example.com:9990/</li>
</ul>
</li>
</ol>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-3cbf526 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="3cbf526" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-65b7bc8" data-id="65b7bc8" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-61895b3 elementor-widget elementor-widget-heading" data-id="61895b3" data-element_type="widget" data-e-type="widget" data-widget_type="heading.default">
				<div class="elementor-widget-container">
					<h2 class="elementor-heading-title elementor-size-default">Conclusiones</h2>				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-8198e8f elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="8198e8f" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-d1c6ee6" data-id="d1c6ee6" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-69dc084 elementor-widget elementor-widget-text-editor" data-id="69dc084" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<p><span style="font-weight: 400;">JBoss Enterprise Application Platform trae por defecto una configuración que es suficiente para un ambiente de desarrollo pero va a ser necesario aplicar ajustes como los que hemos visto en este artículo para poder hacer uso de sus servicios en escenarios más demandantes.</span></p>
<p><span style="font-weight: 400;">Les hacemos la invitación a estar atentos ya que en próximas entregas cubriremos otras áreas de la administración y configuración del producto. Hasta entonces.</span></p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		<p>The post <a href="https://softwareevolutivo.com.ec/jboss-eap-instalacion-y-configuracion-basica/">JBoss EAP: Instalación y configuración básica</a> appeared first on <a href="https://softwareevolutivo.com.ec">Software Evolutivo</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://softwareevolutivo.com.ec/jboss-eap-instalacion-y-configuracion-basica/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Enganchémonos con REACT HOOKS!</title>
		<link>https://softwareevolutivo.com.ec/react-hooks/</link>
					<comments>https://softwareevolutivo.com.ec/react-hooks/#respond</comments>
		
		<dc:creator><![CDATA[Ariel Altamirano]]></dc:creator>
		<pubDate>Tue, 05 Apr 2022 15:15:43 +0000</pubDate>
				<category><![CDATA[Aplicaciones Web]]></category>
		<category><![CDATA[Desarrollo de Software]]></category>
		<category><![CDATA[Frontend]]></category>
		<category><![CDATA[React]]></category>
		<category><![CDATA[React Hooks]]></category>
		<guid isPermaLink="false">https://softwareevolutivo.com.ec/?p=1366</guid>

					<description><![CDATA[<p>Un Hook es una función especial que permite conectarnos a características de React, para trabajar con métodos especiales, los cuales nos permitirán manejar el estado de mejor forma sin depender de clases.<br />
Los react hooks vienen a resolver problemas de complejidad en el manejo de la lógica de estados entre componentes y también trabajan mediante funciones y ya no mediante clases </p>
<p>The post <a href="https://softwareevolutivo.com.ec/react-hooks/">Enganchémonos con REACT HOOKS!</a> appeared first on <a href="https://softwareevolutivo.com.ec">Software Evolutivo</a>.</p>
]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="1366" class="elementor elementor-1366">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-fc27f0e elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="fc27f0e" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-6628b80" data-id="6628b80" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
							</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-34b9246 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="34b9246" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-01f8668" data-id="01f8668" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-bfbec25 elementor-widget elementor-widget-text-editor" data-id="bfbec25" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h1 dir="ltr" style="line-height: 1.2; margin-top: 20pt; margin-bottom: 6pt;"><span style="font-size: 13.999999999999998pt; font-family: Times,serif; color: #000000; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">¿Qué es un Hook?</span></h1>
<p><b id="docs-internal-guid-0b602657-7fff-08cc-61d6-9fef608951e1" style="font-weight: normal;">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.2; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Times,serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Un Hook es una función especial que permite conectarnos a características de React, para trabajar con métodos especiales, los cuales nos permitirán manejar el estado de mejor forma sin depender de clases. (Medina, 2021)&nbsp;</span></p>
<p dir="ltr" style="line-height: 1.2; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Times,serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Más adelante veremos estos principales métodos especiales.</span></p>
<h1 dir="ltr" style="line-height: 1.2; margin-top: 20pt; margin-bottom: 6pt;"><span style="font-size: 13.999999999999998pt; font-family: Times,serif; color: #000000; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">¿Qué son los React Hooks?</span></h1>
<p><b style="font-weight: normal;">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.2; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Times,serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Son una característica opcional que salió en la versión 16.8 en febrero de 2019, sin embargo, son compatibles con versiones anteriores. (Capparelli, 2020)</span></p>
<p dir="ltr" style="line-height: 1.2; margin-top: 0pt; margin-bottom: 0pt;"><span id="docs-internal-guid-c7a99b2d-7fff-f14c-84c7-c8d4bb268a89"><span style="font-size: 12pt; font-family: Times, serif; color: rgb(0, 0, 0); background-color: transparent; font-variant-numeric: normal; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;">Los react hooks vienen a resolver problemas de complejidad en el manejo de la lógica de estados entre componentes y también trabajan mediante funciones (Figura 1) y ya no mediante clases (Figura 2).</span></span><br></p>
<p><b style="font-weight: normal;">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.2; text-align: center; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Times,serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="border: none; display: inline-block; overflow: hidden; width: 272px; height: 195px;"><img loading="lazy" decoding="async" style="margin-left: 0px; margin-top: 0px;" title="Figura 2" src="https://lh3.googleusercontent.com/7tnjCvbeoskRXP1kuubZCEaVaKVlAQyxy6D0nvXFkw8saNEWLY9J7GHTtk3xLZdE9Y88yPJQSlPYdw2CddVO6Fo2qHWeYbMYQxrt9JcflW-vSdlcfdDYiCFSZ2QyDYIXu9SqeoRbx5eH8tTLJA" alt="Funciones en React Hooks" width="272" height="195"></span></span></p>
<p dir="ltr" style="line-height: 1.2; text-align: center; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Times,serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Figura 1. Funciones en React Hooks</span></p>
<p dir="ltr" style="line-height: 1.2; text-align: center; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Times,serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="border: none; display: inline-block; overflow: hidden; width: 268px; height: 272px;"><img loading="lazy" decoding="async" style="margin-left: 0px; margin-top: 0px;" title="Figura 1" src="https://lh6.googleusercontent.com/zovjf5SvieEzSjzWQcsy9LE_MUUI8nFiiiYBp0uCgG4Gu-VbHXoiksgFtP0HN8-vBfoKKdCMq40P_iArd0SZZkuGs7eohxfqT2BVRsRMXByER_qbISlo1RzlFcxU-nSs_uJY_F83N17eelEOPA" alt="Clases en React" width="268" height="272"></span></span></p>
<p dir="ltr" style="line-height: 1.2; text-align: center; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Times,serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Figura 2. Clases en React</span></p>
<p><b style="font-weight: normal;">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.2; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 13.999999999999998pt; font-family: Times,serif; color: #000000; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Métodos principales</span></p>
<p><b style="font-weight: normal;">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.2; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Times,serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Como ya hemos visto anteriormente, los hooks son funciones especiales que permiten acceder a las funcionalidades de React. En esta sección del blog veremos los hooks más importantes con una pequeña descripción de lo que hacen y un ejemplo de cada uno.</span></p>
<p><b style="font-weight: normal;">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.2; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Times,serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Nota: Cada hook tiene que ser importado desde la librería React (Figura 3) y cada hook es creado en un nuevo archivo, el cual tiene que ser llamado desde App.js (Figura 4)</span></p>
<p dir="ltr" style="line-height: 1.2; text-align: center; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Times,serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="border: none; display: inline-block; overflow: hidden; width: 342px; height: 19px;"><img loading="lazy" decoding="async" style="margin-left: 0px; margin-top: 0px;" src="https://lh6.googleusercontent.com/tUakm1BYwMgtXXTnR_ngisiotY0M9aFSAOUdRRaG9v7cV_4UDoH-p52SsFKvKLk8GJRiLng5yCw2Fo-zoSWPtq8Q817qXn-PRTm6zOetptrRJZpq6PJYzb2Ly2ueI6GNH6qy2nXCjIojNcWT-Q" width="342" height="19"></span></span></p>
<p dir="ltr" style="line-height: 1.2; text-align: center; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Times,serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Figura 3. Importación de useState</span></p>
<p><b style="font-weight: normal;">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.2; text-align: center; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Times,serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="border: none; display: inline-block; overflow: hidden; width: 382px; height: 189px;"><img loading="lazy" decoding="async" style="margin-left: 0px; margin-top: 0px;" src="https://lh3.googleusercontent.com/510-IGAnl9MMwvfqjqdT1oDGMzskr-vR9G2uxfYGiXGlIGfUYNxA6GHn9F8nlY0VEB0nk0FkenPnQi7nsZVlMpH1P4u4jYuRE2bUT-IsHH6k9NBnTjRWdc7DcfgBu0WRhSXQIWXqt_e5EK3L0Q" width="382" height="189"></span></span></p>
<p dir="ltr" style="line-height: 1.2; text-align: center; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Times,serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Figura 4. Llamado de componente.</span></p>
<h3 dir="ltr" style="line-height: 1.2; margin-top: 16pt; margin-bottom: 4pt;"><span style="font-size: 13.999999999999998pt; font-family: Times,serif; color: #000000; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">UseState</span></h3>
<p dir="ltr" style="line-height: 1.2; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Times,serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">La función useState permite añadir un estado interno a nuestros componentes para hacerlos dinámicos e interactivos. (Midudev, 2019)</span></p>
<p dir="ltr" style="line-height: 1.2; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Times,serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">En el ejemplo de la figura 5, se declara una constante “text” mediante useState para cambiar el texto de un botón dependiendo su estado (true = “Texto 1” y false = “Texto 2”), cuando se da click la función handleClick cambia el estado de la constante “text”.</span></p>
<p><b style="font-weight: normal;">&nbsp;</b></p>
<div dir="ltr" style="margin-left: 0pt;" align="center">
<table style="border: none; border-collapse: collapse;">
<colgroup>
<col width="458"></colgroup>
<tbody>
<tr style="height: 235.4986049107142pt;">
<td style="vertical-align: top; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 1pt;">
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">import</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> React, </span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">{</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> useState </span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">}</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">from</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&#8220;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c3e88d; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">react</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&#8220;;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;">
</p><p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">const</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #82aaff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">FirstExercise</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">=</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">()</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">=&gt;</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">{</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">const</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">[</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">text, setText</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">]</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">=</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #82aaff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">useState</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #f07178; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">false</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">);</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;">
</p><p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">const</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #82aaff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">handleClick</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">=</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">()</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">=&gt;</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">{</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #82aaff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">setText</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(!</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">text</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">);</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">};</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;">
</p><p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">return</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&lt;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #f07178; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">div</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&lt;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #f07178; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">h1</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&gt;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Software Evolutivo</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&lt;/</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #f07178; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">h1</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&lt;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #f07178; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">button</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #ffcb6b; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">type</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">=&#8221;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c3e88d; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">button</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&#8220;</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #ffcb6b; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">onClick</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">={</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">handleClick</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">}&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">{</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">text </span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">?</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&#8220;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c3e88d; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Text 1</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&#8220;</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">:</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&#8220;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c3e88d; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Text 2</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&#8220;}</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&lt;/</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #f07178; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">button</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&lt;/</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #f07178; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">div</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">);</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">};</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">export</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">default</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> FirstExercise</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span></p>
</td>
</tr>
</tbody>
</table>
</div>
<p><b style="font-weight: normal;">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.2; text-align: center; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Times,serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="border: none; display: inline-block; overflow: hidden; width: 261px; height: 89px;"><img loading="lazy" decoding="async" style="margin-left: 0px; margin-top: 0px;" src="https://lh4.googleusercontent.com/QKEHcCDcX6bPEQ0gevavKkHnlS8tsNMgon1TznTUTTAwwOEZNYuMZUrCwrOkdlEB99J-jCBxZ5TzMKzPnlgvWLgAyFqY2J45zT0u2iriXtxvjwzwDDtyEYnN2Lc3kGtiioXlDsTPSMs75M_lCg" width="261" height="89"></span></span></p>
<p><b style="font-weight: normal;">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.2; text-align: center; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Times,serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Figura 5. Uso de useState</span></p>
<h3 dir="ltr" style="line-height: 1.2; margin-top: 16pt; margin-bottom: 4pt;"><span style="font-size: 13.999999999999998pt; font-family: Times,serif; color: #000000; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">UseEffect</span></h3>
<p dir="ltr" style="line-height: 1.2; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Times,serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">La función useEffect permite realizar efectos secundarios desde un componente de función, es similar a componentDidMount,componentDidUpdate y componentWillUnmount en las clases React, pero unificadas en una sola función. (React, 2022)</span></p>
<p><b style="font-weight: normal;">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.2; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Times,serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">En el ejemplo de la figura 6, se utiliza la API de Rick and Morty para obtener una lista de datos y presentarlos en pantalla. Dicha lista se obtiene en la función useEffect cuando carga el componente, en caso de querer actualizarlo en base a algún estado se tiene que agregar dicho estado entre los corchetes finales de la función useEffect, como este no es el caso se lo deja vacío.</span></p>
<p><b style="font-weight: normal;"></b></p><b style="font-weight: normal;">
</b><p><b style="font-weight: normal;"></b></p>
<div dir="ltr" style="margin-left: 0pt;" align="center">
<table style="border: none; border-collapse: collapse;">
<colgroup>
<col width="454"></colgroup>
<tbody>
<tr style="height: 0pt;">
<td style="vertical-align: top; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 1pt;">
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">import</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> React, </span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">{</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> useState, useEffect </span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">}</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">from</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&#8220;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c3e88d; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">react</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&#8220;;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;">
</p><p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">const</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #82aaff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">SecondExercise</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">=</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">()</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">=&gt;</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">{</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">const</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">[</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">characters, setCharacters</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">]</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">=</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #82aaff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">useState</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">([]);</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;">
</p><p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #82aaff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">useEffect</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(()</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">=&gt;</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">{</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #82aaff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">fetch</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(&#8216;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c3e88d; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">https://rickandmortyapi.com/api/character/</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&#8216;)</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #82aaff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">then</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">response </span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">=&gt;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> response</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #82aaff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">json</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">())</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #82aaff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">then</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">data </span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">=&gt;</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #82aaff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">setCharacters</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">data</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #82aaff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">results</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">));</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">}</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">, </span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">[]);</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;">
</p><p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">return</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&lt;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #f07178; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">div</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">{</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">characters</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #82aaff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">map</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">character </span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">=&gt;</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&lt;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #f07178; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">h2</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&gt;{</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">character</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #82aaff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">name</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">}&lt;/</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #f07178; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">h2</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">))}</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&lt;/</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #f07178; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">div</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">);</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">};</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">export</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">default</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> SecondExercise</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span></p>
</td>
</tr>
</tbody>
</table>
</div>
<p dir="ltr" style="line-height: 1.2; text-align: center; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Times,serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="border: none; display: inline-block; overflow: hidden; width: 287px; height: 265px;"><img loading="lazy" decoding="async" style="margin-left: 0px; margin-top: 0px;" src="https://lh4.googleusercontent.com/MJCKEsUucemjFMjJpv2VqS1KzE2PsC7aUqQEooLSrwe1ulR-5FJ3FAED3XOhU7YP9sgsSR9nNAR3vp5coU7lFRa4s4icqNs6Ey4jnR8rpCLH0F2KzERz6c0Sj3VhuS5Do-2LtWhgYvD-cosLzg" width="287" height="265"></span></span></p>
<p><b style="font-weight: normal;">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.2; text-align: center; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Times,serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Figura 6. Uso de useEffect</span></p>
<p><b style="font-weight: normal;">&nbsp;</b></p>
<h3 dir="ltr" style="line-height: 1.2; margin-top: 16pt; margin-bottom: 4pt;"><span style="font-size: 13.999999999999998pt; font-family: Times,serif; color: #000000; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">UseContext</span></h3>
<p dir="ltr" style="line-height: 1.2; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Times,serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">La función useContext permite simplificar el manejo de estados entre los distintos componentes padre e hijos.</span></p>
<p><b style="font-weight: normal;">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.2; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Times,serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Formas de utilizar useContext:</span></p>
<ul style="margin-top: 0; margin-bottom: 0; padding-inline-start: 48px;">
<li dir="ltr" style="list-style-type: disc; font-size: 12pt; font-family: Times,serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre;" aria-level="1">
<p dir="ltr" style="line-height: 1.2; margin-top: 0pt; margin-bottom: 0pt;" role="presentation"><span style="font-size: 12pt; font-family: Times,serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Correct: useContext(MyContext)</span></p>
</li>
<li dir="ltr" style="list-style-type: disc; font-size: 12pt; font-family: Times,serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre;" aria-level="1">
<p dir="ltr" style="line-height: 1.2; margin-top: 0pt; margin-bottom: 0pt;" role="presentation"><span style="font-size: 12pt; font-family: Times,serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Incorrect: useContext(MyContext.Consumer)</span></p>
</li>
<li dir="ltr" style="list-style-type: disc; font-size: 12pt; font-family: Times,serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre;" aria-level="1">
<p dir="ltr" style="line-height: 1.2; margin-top: 0pt; margin-bottom: 0pt;" role="presentation"><span style="font-size: 12pt; font-family: Times,serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Incorrect: useContext(MyContext.Provider). (React, 2022)</span></p>
</li>
</ul>
<p><b style="font-weight: normal;">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.2; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Times,serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Para este ejemplo como se puede apreciar en las figuras 7 y 8 respectivamente, se crea un contexto, en este caso crearemos un nuevo archivo dentro de src/context llamado ThemeContext, posteriormente, desde index.js importamos el archivo creado para encapsular la aplicación sobre el provider en este caso con un value igual a blue</span></p>
<p><b style="font-weight: normal;">&nbsp;</b></p>
<div dir="ltr" style="margin-left: 0pt;" align="center">
<table style="border: none; border-collapse: collapse;">
<colgroup>
<col width="480"></colgroup>
<tbody>
<tr style="height: 0pt;">
<td style="vertical-align: top; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 1pt;">
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">import</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> React </span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">from</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&#8216;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c3e88d; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">react</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&#8216;;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">const</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> ThemeContext </span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">=</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> React</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #82aaff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">createContext</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #f07178; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">null</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">);</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">export</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">default</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> ThemeContext</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span></p>
</td>
</tr>
</tbody>
</table>
</div>
<p><b style="font-weight: normal;">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.2; text-align: center; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Times,serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Figura 7. Creación del contexto</span></p>
<p><b style="font-weight: normal;"></b></p><b style="font-weight: normal;">
</b><p><b style="font-weight: normal;"></b></p>
<div dir="ltr" style="margin-left: 0pt;" align="center">
<table style="border: none; border-collapse: collapse;">
<colgroup>
<col width="476"></colgroup>
<tbody>
<tr style="height: 0pt;">
<td style="vertical-align: top; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 1pt;">
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">import</span><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> React </span><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">from</span> <span style="font-size: 10.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&#8216;</span><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #c3e88d; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">react</span><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&#8216;;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">import</span><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> ReactDOM </span><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">from</span> <span style="font-size: 10.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&#8216;</span><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #c3e88d; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">react-dom</span><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&#8216;;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">import</span> <span style="font-size: 10.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&#8216;</span><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #c3e88d; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">./index.css</span><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&#8216;;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">import</span><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> App </span><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">from</span> <span style="font-size: 10.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&#8216;</span><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #c3e88d; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">./App</span><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&#8216;;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">import</span><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> ThemeContext </span><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">from</span> <span style="font-size: 10.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&#8216;</span><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #c3e88d; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">./context/ThemeContext</span><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&#8216;;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;">
</p><p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">ReactDOM</span><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #82aaff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">render</span><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;</span><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&lt;</span><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #f07178; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">React.StrictMode</span><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&lt;</span><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #f07178; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">ThemeContext.Provider</span> <span style="font-size: 10.5pt; font-family: 'Courier New'; color: #ffcb6b; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">value</span><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">=&#8221;</span><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #c3e88d; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">blue</span><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&#8220;&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&lt;</span><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #f07178; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">App</span> <span style="font-size: 10.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">/&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;&nbsp;&nbsp;</span><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&lt;/</span><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #f07178; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">ThemeContext.Provider</span><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;</span><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&lt;/</span><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #f07178; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">React.StrictMode</span><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&gt;</span><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">,</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;document</span><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #82aaff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">getElementById</span><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(&#8216;</span><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #c3e88d; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">root</span><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&#8216;)</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 10.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">);</span></p>
</td>
</tr>
</tbody>
</table>
</div>
<p><b style="font-weight: normal;">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.2; text-align: center; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Times,serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Figura 8. Importación del contexto creado</span></p>
<p><b style="font-weight: normal;">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.2; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Times,serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Finalmente en la figura 9, se implementará el useContext dentro del ejercicio que realizamos para useState de tal manera que obtenga el valor que establecimos y se pinte el título en este caso de color azul.</span></p>
<p><b style="font-weight: normal;">&nbsp;</b></p>
<div dir="ltr" style="margin-left: 0pt;" align="center">
<table style="border: none; border-collapse: collapse;">
<colgroup>
<col width="498"></colgroup>
<tbody>
<tr style="height: 0pt;">
<td style="vertical-align: top; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 1pt;">
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">import</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> React, </span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">{</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> useState, useContext </span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">}</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">from</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&#8220;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c3e88d; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">react</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&#8220;;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">import</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> ThemeContext </span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">from</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&#8220;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c3e88d; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">../context/ThemeContext</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&#8220;;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;">
</p><p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">const</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #82aaff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">ThirdExercise</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">=</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">()</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">=&gt;</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">{</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">const</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">[</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">text, setText</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">]</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">=</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #82aaff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">useState</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #f07178; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">false</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">);</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">const</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> color </span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">=</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #82aaff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">useContext</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">ThemeContext</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;">
</p><p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">const</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #82aaff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">handleClick</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">=</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">()</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">=&gt;</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">{</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #82aaff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">setText</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(!</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">text</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">);</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">}</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;">
</p><p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">return</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&lt;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #f07178; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">div</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&lt;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #f07178; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">h1</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #ffcb6b; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">style</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">={{</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> color </span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">}}&gt;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Software Evolutivo</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&lt;/</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #f07178; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">h1</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&lt;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #f07178; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">button</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #ffcb6b; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">type</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">=&#8221;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c3e88d; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">button</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&#8220;</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #ffcb6b; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">onClick</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">={</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">handleClick</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">}&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">{</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">text </span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">?</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&#8220;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c3e88d; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Text 1</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&#8220;:</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&#8220;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c3e88d; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Text 2</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&#8220;}</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&lt;/</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #f07178; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">button</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&lt;/</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #f07178; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">div</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">);</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">};</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">export</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">default</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> ThirdExercise</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span></p>
</td>
</tr>
</tbody>
</table>
</div>
<p dir="ltr" style="line-height: 1.2; text-align: center; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Times,serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="border: none; display: inline-block; overflow: hidden; width: 219px; height: 82px;"><img loading="lazy" decoding="async" style="margin-left: 0px; margin-top: 0px;" src="https://lh5.googleusercontent.com/__3o07sAO6rZzqbpi5OxfoyGZWEvL9Kng8AP9MYx6bitmUKrCgdqDKBrJ5Jm7R9Gvy8ruVhrSaPgly6YgfOzG2DXXusIAZG60W7FKKN-5EMw7h6L5L_Tf76PWmXiCZwH899aLpbxn6OTOkWunQ" width="219" height="82"></span></span></p>
<p><b style="font-weight: normal;">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.2; text-align: center; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Times,serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Figura 9. Uso de useContext</span></p>
<h3 dir="ltr" style="line-height: 1.2; margin-top: 16pt; margin-bottom: 4pt;"><span style="font-size: 13.999999999999998pt; font-family: Times,serif; color: #000000; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">UseReducer</span></h3>
<p dir="ltr" style="line-height: 1.2; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Times,serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">La función useReducer permite actualizar un estado interno por medio de una función llamada reducer. Puede ser una alternativa a useState. (React, 2022)</span></p>
<p><b style="font-weight: normal;">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.2; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Times,serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">En el ejemplo de la figura 10, realizaremos el incremento o decremento de clicks mediante la llamada a la función reducer, la cual es llamada mediante el hook useReducer que recibe dos parámetros, el primero es la función reducer y el segundo un estado (initialState). Este estado inicial se actualiza en la función reducer dependiendo el tipo que es enviado como parámetro en la función onClick de cada botón que llama mediante al reducer y almacenado en la constante “state” mediante la cual se puede reflejar el cambio en pantalla.</span></p>
<p><b style="font-weight: normal;">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.2; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Times,serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Nota: No es una alternativa a Redux.</span></p>
<p><b style="font-weight: normal;">&nbsp;</b></p>
<div dir="ltr" style="margin-left: 0pt;" align="center">
<table style="border: none; border-collapse: collapse;">
<colgroup>
<col width="525"></colgroup>
<tbody>
<tr style="height: 0pt;">
<td style="vertical-align: top; padding: 5pt 5pt 5pt 5pt; overflow: hidden; overflow-wrap: break-word; border: solid #000000 1pt;">
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">import</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> React, </span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">{</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> useReducer </span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">}</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">from</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&#8220;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c3e88d; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">react</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&#8220;;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;">
</p><p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">const</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> initialState </span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">=</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">{</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #73d1c8; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">count</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">:</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #f78c6a; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">0</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">};</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;">
</p><p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">const</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #82aaff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">reducer</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">=</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">state</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">,</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> action</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">=&gt;</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">{</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">switch</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">action</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #82aaff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">type</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">)</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">{</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">case</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&#8216;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c3e88d; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">increment</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&#8216;:</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">return</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">{</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #73d1c8; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">count</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">:</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> state</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #82aaff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">count</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">+</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #f78c6a; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">1</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">};</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">case</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&#8216;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c3e88d; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">decrement</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&#8216;:</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">return</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">{</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #73d1c8; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">count</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">:</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> state</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #82aaff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">count</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&#8211;</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #f78c6a; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">1</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">};</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">default</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">:</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">throw</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">new</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #ffcb6b; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Error</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">();</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">}</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">}</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;">
</p><p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">const</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #82aaff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">FourthExercise</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">=</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">()</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">=&gt;</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">{</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">const</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">[</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">state, dispatch</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">]</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">=</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #82aaff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">useReducer</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">reducer, initialState</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">);</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;">
</p><p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">return</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">(</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&lt;&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Count: </span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">{</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">state</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">.</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #82aaff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">count</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">}</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&lt;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #f07178; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">button</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #ffcb6b; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">onClick</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">={()</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">=&gt;</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #82aaff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">dispatch</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">({</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #73d1c8; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">type</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">:</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&#8216;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c3e88d; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">decrement</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&#8216;})}&gt;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&#8211;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&lt;/</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #f07178; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">button</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&lt;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #f07178; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">button</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #ffcb6b; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">onClick</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">={()</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">=&gt;</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #82aaff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">dispatch</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">({</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #73d1c8; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">type</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">:</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&#8216;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c3e88d; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">increment</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&#8216;})}&gt;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">+</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&lt;/</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #f07178; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">button</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;&nbsp;&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&lt;/&gt;</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">&nbsp;</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">);</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">};</span></p>
<p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;">
</p><p dir="ltr" style="line-height: 1.6285714285714286; background-color: #263238; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">export</span> <span style="font-size: 9.5pt; font-family: 'Courier New'; color: #c792ea; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">default</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #eeffff; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> FourthExercise</span><span style="font-size: 9.5pt; font-family: 'Courier New'; color: #89ddf3; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">;</span></p>
</td>
</tr>
</tbody>
</table>
</div>
<p><b style="font-weight: normal;">&nbsp;</b></p>
<p dir="ltr" style="line-height: 1.2; text-align: center; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Times,serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"><span style="border: none; display: inline-block; overflow: hidden; width: 142px; height: 38px;"><img loading="lazy" decoding="async" style="margin-left: 0px; margin-top: 0px;" src="https://lh3.googleusercontent.com/T2AcaGDNsElcOLCn4oqjjsgj6TEp5GyRNF7KP0zquQDsipv--x8J_uQOX33gygtQ_g2_3h4YSLYSfl1iiwRWcO0y7uvDyOQzfMlUfuEWPMRDPlx-wwywGLGGDS8eDLtBlK8hUotfpOBbtXpLKw" width="142" height="38"></span></span></p>
<p dir="ltr" style="line-height: 1.2; text-align: center; margin-top: 0pt; margin-bottom: 0pt;"><span style="font-size: 12pt; font-family: Times,serif; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Figura 10. Uso de useReducer</span></p>
<p><b style="font-weight: normal;">&nbsp;</b></p>
<h1 dir="ltr" style="line-height: 1.2; margin-top: 20pt; margin-bottom: 6pt;"><span style="font-size: 13.999999999999998pt; font-family: Times,serif; color: #000000; background-color: transparent; font-weight: bold; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Referencias</span></h1>
<p><b style="font-weight: normal;">&nbsp;</b></p>
<p dir="ltr" style="line-height: 2.4; text-indent: -36pt; margin-top: 0pt; margin-bottom: 0pt; padding: 0pt 0pt 0pt 36pt;"><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Capparelli, A. (2020). </span><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: italic; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Qué son los hooks y cómo utilizarlos en tu proyecto con React.</span><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;"> Paradigma. https://www.paradigmadigital.com/dev/hooks-como-utilizarlos-react/</span></p>
<p dir="ltr" style="line-height: 2.4; text-indent: -36pt; margin-top: 0pt; margin-bottom: 0pt; padding: 0pt 0pt 0pt 36pt;"><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Medina, K. (2021, 05 10). </span><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: italic; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Introducción a React Hooks</span><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">. https://medium.com/nowports-tech/introducci%C3%B3n-a-react-hooks-55918188c5e2</span></p>
<p dir="ltr" style="line-height: 2.4; text-indent: -36pt; margin-top: 0pt; margin-bottom: 0pt; padding: 0pt 0pt 0pt 36pt;"><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Midudev. (2019, February 7). </span><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: italic; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">React hooks, cómo utilizar el hook useState</span><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">. midudev ‍. https://midu.dev/react-hooks-use-state-anadiendo-estado-a-nuestro-componente-funcional/</span></p>
<p dir="ltr" style="line-height: 2.4; text-indent: -36pt; margin-top: 0pt; margin-bottom: 0pt; padding: 0pt 0pt 0pt 36pt;"><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">React. (2022). </span><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: italic; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">Hooks API Reference – React</span><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-weight: 400; font-style: normal; font-variant: normal; text-decoration: none; vertical-align: baseline; white-space: pre-wrap;">. React. https://reactjs.org/docs/hooks-reference.html</span></p>
<p><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-variant-numeric: normal; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;">React. (2022). </span><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-style: italic; font-variant-numeric: normal; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;">Using the Effect Hook – React</span><span style="font-size: 11pt; font-family: Arial; color: #000000; background-color: transparent; font-variant-numeric: normal; font-variant-east-asian: normal; vertical-align: baseline; white-space: pre-wrap;">. React. https://reactjs.org/docs/hooks-effect.html</span></p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		<p>The post <a href="https://softwareevolutivo.com.ec/react-hooks/">Enganchémonos con REACT HOOKS!</a> appeared first on <a href="https://softwareevolutivo.com.ec">Software Evolutivo</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://softwareevolutivo.com.ec/react-hooks/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
