Mastering BDD Testing with Cypress 13 and Cucumber: A Comprehensive Guide

Muhammad Ahsan Mehdi
3 min readOct 18, 2023

--

Behavior-Driven Development (BDD) provides a structured and interactive approach to testing, aligning the efforts of developers, testers, and clients. Cypress and Cucumber are two powerful tools that, when combined, can streamline the testing process while making it more accessible to all team members. In this article, we will embark on a journey into BDD, exploring how to set up a Cypress Cucumber project. We'll dive into the process of creating meaningful test scenarios in plain, understandable language.

Pre-requisites

  1. Node JS

Make sure you have Node.js and npm (Node Package Manager) installed on your system. You can download and install them from the official Node.js website.

2. Visual Studio Code

Make sure you have visual studio code installed on your system. You can download and install them from the official website.

Installation & Configuration

1. Create Folder

First, we need to create a folder at any location in your device.

2. Initialize a New Node JS Project

Open the created folder in vs code and run the following command to initialize a new Node.js project, it will create a package.json file:
npm init -y

3. Install Cypress

Run the following command to install Cypress as a development dependency in your project:
npm install cypress –save-dev

4. Install Cypress-Cucumber-Preprocessor

This package helps you integrate Cucumber with Cypress. Install it as a development dependency:
npm install cypress-cucumber-preprocessor –save-dev

5. Initialize Cypress

Set up Cypress by running the following command:
npx cypress open

A cypress tab will appear follow the steps as shown in images below:

figure: 5.1
figure: 5.2
figure: 5.3
figure: 5.4
figure: 5.5
figure: 5.6

Output:

You’ll see the following output in the browser:

6. Configure Cypress-Cucumber-Preprocessor

Inside the cypress.config.js add the following code:

Your package.json should be exactly as like:

7. Write Cypress Tests

7.1 BDD Steps in Feature File

Now inside e2e folder create a feature file OpenGoogleImages.feature and add the following code:

7.2 Step definitions in JS file

Inside e2e folder create a new folder with name “OpenGoogleImages” and in that folder create a new javascript file named OpenGoogleImages.js.
Add the following code in OpenGoogleImages.js (step definitions file):

8. Run

Delete the spec.cy.js file created above in step 5. Open the terminal and run the following command:

npx cypress open

Output:

For output follow the step 5 images and for this time click on your feature file then the results will be appear in browser window.

Conclusion:

In summary, we can utilize Cypress with Cucumber for behavior-driven development in Visual Studio Code. This approach simplifies our work, involving just two key files: one being the spec file or JavaScript file, and the other being the feature file. The code for this project is accessible on Git.

In last, I would like to say!
Thank you for your valuable time. Please send me notes on this article if you have any questions regarding the topic.

For better communication, let’s connect via LinkedIn.

--

--