<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Untitled Publication]]></title><description><![CDATA[Untitled Publication]]></description><link>https://neisserms.hashnode.dev</link><generator>RSS for Node</generator><lastBuildDate>Tue, 08 Sep 2026 20:33:42 GMT</lastBuildDate><atom:link href="https://neisserms.hashnode.dev/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Base template for end-to-end testing using Gherkin, Cucumber, and Cypress.]]></title><description><![CDATA[Introduction
Template where Cypress & Cucumber is already integrated. This repository acts externally, you only need to provide the path of the system or website in the environment to use it.
The main benefit of using it as an external project is tha...]]></description><link>https://neisserms.hashnode.dev/base-template-for-end-to-end-testing-using-gherkin-cucumber-and-cypress</link><guid isPermaLink="true">https://neisserms.hashnode.dev/base-template-for-end-to-end-testing-using-gherkin-cucumber-and-cypress</guid><category><![CDATA[test-automation]]></category><category><![CDATA[Testing]]></category><category><![CDATA[Developer]]></category><category><![CDATA[Cucumber]]></category><category><![CDATA[Gherkin]]></category><category><![CDATA[Cypress]]></category><category><![CDATA[software development]]></category><dc:creator><![CDATA[Neisser Moreno Sanchez]]></dc:creator><pubDate>Sun, 04 Aug 2024 18:00:55 GMT</pubDate><content:encoded><![CDATA[<h3 id="heading-introduction">Introduction</h3>
<p>Template where Cypress &amp; Cucumber is already integrated. This repository acts externally, you only need to provide the path of the system or website in the environment to use it.</p>
<p>The main benefit of using it as an external project is that it can be coupled with any other framework and that it also does not add more load to the real project, that is, to the application itself, since it does not install any package or dependency because it acts as an independent project.</p>
<h3 id="heading-importance">Importance</h3>
<p>End-to-end (E2E) testing is crucial in application development because it ensures that all components of the application work together correctly, just as they would in a production environment. Using tools such as Gherkin, Cucumber, and Cypress, test scenarios can be defined and automated in natural language, facilitating understanding and collaboration between developers and stakeholders. These tests help identify integration issues and user flows that might not be detected in unit or integration tests, ensuring a consistent and functional user experience.</p>
<h3 id="heading-steps">Steps</h3>
<p>npm install</p>
<h3 id="heading-execution">Execution</h3>
<p>npm run cypress:open</p>
<h3 id="heading-feature-example">Feature Example</h3>
<p><mark># </mark> <code>language: es</code></p>
<p><code>Característica: Iniciar sesión</code></p>
<p><code>Escenario: Iniciar sesión con éxito</code></p>
<p><code>Dado que abro la página de login</code></p>
<p><code>Cuando tipeo "admin" en el campo de usuario</code></p>
<p><code>Y tipeo "admin" en el campo de contraseña</code></p>
<p><code>Y doy click en el botón de login</code></p>
<p><code>Entonces debería ver la página de dashboard</code></p>
<h2 id="heading-step-example">Step Example</h2>
<p><code>import { Given, When, Then } from "cypress-cucumber-preprocessor/steps";</code></p>
<p><code>Given("I open the login page", () =&gt; { cy.visit("</code><a target="_blank" href="https://www.google.com/"><code>https://www.google.com/</code></a><code>"); });</code></p>
<p><code>When("I type {string} in the username field", (username) =&gt; { cy.get("#username").type(username); });</code></p>
<p><code>When("I type {string} in the password field", (password) =&gt; { cy.get("#password").type(password); });</code></p>
<p><code>When("I click on the login button", () =&gt; { cy.get("#login-button").click(); });</code></p>
<p><code>Then("I should see the dashboard page", () =&gt; { cy.get("#dashboard").should("be.visible"); });</code></p>
<p>Github: <a target="_blank" href="https://github.com/NeisserMS/Cypress_Cucumber_Template">https://github.com/NeisserMS/Cypress_Cucumber_Template</a></p>
]]></content:encoded></item></channel></rss>