Mastering Cucumber Java BDD: Build Efficient Automated Tests
- Description
- Curriculum
- FAQ
- Reviews
Are you ready to supercharge your software testing skills and become a proficient automation tester? Look no further! Welcome to our comprehensive course on “Mastering Cucumber Java BDD: Build Efficient Automated Tests.”
In today’s fast-paced software development world, effective testing is crucial. Behavior-Driven Development (BDD) with Cucumber and Java has emerged as a powerful technique for writing efficient and maintainable automated tests. This course is your gateway to mastering this cutting-edge technology.
What You Will Learn:
-
Fundamentals of BDD: Understand the core principles of Behavior-Driven Development and why it’s revolutionizing the way we test software.
-
Cucumber Basics: Dive into Cucumber, a leading BDD framework, and learn how to write feature files that bridge the gap between business requirements and technical tests.
-
Step Definitions: Harness the power of step definitions to translate feature files into executable code, making your tests come to life.
-
Data-Driven Testing: Explore advanced techniques for data-driven testing and learn how to create versatile and reusable test scenarios.
-
Integrating with Rest Assured: Combine the strength of Cucumber with Rest Assured to automate API testing like a pro.
-
Best Practices: Discover industry best practices for structuring your BDD projects, writing clean and maintainable code, and collaborating effectively with your team.
-
Real-World Projects: Apply your knowledge to real-world scenarios through hands-on projects that simulate the challenges faced by professional testers.
Why Enroll in This Course?
-
Practical Skills: Gain hands-on experience and practical skills that are highly sought after in the software testing industry.
-
Instructor Expertise: Learn from experienced instructors who have a proven track record in automated testing and BDD.
-
Career Advancement: Boost your career prospects by becoming proficient in a technology that is in high demand by leading companies.
-
Lifetime Access: Get lifetime access to course materials, updates, and a supportive online community.
Don’t miss this opportunity to become a certified Cucumber Java BDD expert. Enroll today, and take the first step towards a rewarding career in software testing!
-
1IntroductionVideo lesson
Today we will have an introductory lesson and discuss what we will learn during this course. Also, we will discover the benefits of enrolling in this course and what will wait for you in the end.
-
2Communication planVideo lesson
Today we will learn:
How we are going to communicate to make sure that the learning process is efficient
Where to ask questions
How to ask questions
Communication channels, where you can reach out to me.
-
3Tips to improve your course taking experienceText lesson
-
4What is the project we will work on?Video lesson
Today we will discuss the following:
What our project that we will work is.
How we manage to work at it.
What do we want to do with it.
How it is related to real-life projects you will work at.
-
5What will we achieve in the end?Video lesson
Today we are going to discuss what the project that we will have at the end of our tutorial is and how it is related to real-world projects.
-
6What is BDD?Video lesson
Today we will learn:
Brief BDD introduction
The basics of BDD
The BDD process
The BDD benefits
Why BDD is needed
-
7Real life samples from BDDVideo lesson
Today we will learn:
Brief description of a real-life sample of BDD
Main Principles of pure BDD
Key components of BDD at a project
Real-life application
BDD benefits in the example.
Why it is nice to apply BDD to a project.
-
8Home task review BDDVideo lesson
Today we will discuss the resolution of the following home task:
Create a BDD scenario for an e-commerce website.
Select an area of your interest (any flow at an e-commerce website).
For an explanation of the home task, order placement in a shop card scenario will be used.
User Given-When-Then format
Try to use only one When step
Use commonly understandable language for it.
-
9What is Cucumber BDD in JavaVideo lesson
Today we will learn:
Brief history of Cucumber BDD in Java
The main features of Cucumber Java
Advantages and disadvantages of the tool
The similarities with Serenity
The difference with JBehave.
-
10Java 17 InstallationVideo lesson
Today we will learn:
JDK Versions – which one to use?
Oracle JDK VS Open JDK
How to check the current Java version.
How to download JDK binary
Configuring Java environment variables
-
11Gradle 7.3.3 InstallationVideo lesson
Today we will learn:
Gradle main features
Gradle Versions – Which one to use?
Prerequisite for Gradle installation
How to check the current Gradle version
How to download Gradle binary
Configuring Gradle environment variable
-
12IntelliJ IDEA Community Edition InstallationVideo lesson
Today we will learn:
What is IDE?
What are the most popular IDEs for Java development?
Why IntelliJ IDEA?
How to install IntelliJ IDEA to your machine?
How to perform the basic configuration of IntelliJ IDEA?
-
13Setup right structure of project, folders, add dependencyVideo lesson
Today we will do the following:
Add io.cucumber:cucumber-java:latest test implementation dependency.
Add io.cucumber:cucumber-junit-platform-engine:latest test implementation dependency.
Add features folder
Add steps folder
Make sure all the dependencies are loaded.
Install Cucumber plugin for IntelliJ
-
14Create simple scenario to add two numbersVideo lesson
Today we will do the following:
Create TwoNumbersAdditionSteps class in steps folder
Create twoNumbersAddition.feature in features folder
Create a scenario with two Given, one When, and one Then steps
Create step mappings in TwoNumbersAdditionSteps class.
Store numberOne, numberTwo, and result in separate fields of the class.
Assert two numbers sum with JUnit assertion.
-
15Move simple Get Board scenario to BDD format in one single classVideo lesson
Today we will do the following:
Add getBoards.feature to features folder
Add GetBoardsSteps in steps folder
Copy-paste requestWithoutAuth() and requestWithAuth() methods from BaseTest class.
Set RestAssured base URL in requestWithoutAuth() method
Convert each line of checkGetBoardTest into BDD step def.
Create request and Response private fields in GetBoardsSteps class.
Make all assertions via .then() statement.
-
16Move simple Get Board scenario to BDD format in one single class - HometaskVideo lesson
Today, we will discuss the following:
Migration of JUnit 5 test to Cucumber BDD Scenario.
Scenario steps definition in feature file.
Scenario steps mapping in Steps class.
Merge of similar steps into single.
-
17Remove test data from steps, step argumentsVideo lesson
Today we will:
Discuss cucumber step parameters.
Inject dynamic query params for REST Request.
Merge path params setup steps into a single step.
Use a single step for checking any status code.
Verify response against any JSON Schema.
Verify any body param for any expected value
-
18Remove test data from steps, step arguments - HometaskVideo lesson
The home task for today's lesson is:
Transform UpdateBoardTest class into feature file.
Parameterize the request is sent to endpoint step.
Add step that injects header to REST request.
Add step that passes body params to REST request.
Use hard-coded value for updated board name temporarily.
-
19Data tables for couple parameters in stepsVideo lesson
Today we will do the following:
Discuss what Data Table in Cucumber is.
See where Data Table is used.
Add data table for query and path params injection.
User data table with and without headers.
-
20Data tables for couple parameters in steps - HometaskVideo lesson
The home task for today is:
Transform as many parameters as we can to data tables.
Use data table for response body validation.
Apply data table for headers param injection.
Initialize request body as data table map.
-
21OutlinesVideo lesson
Today we will do the following:
Migrate board validation tests to Outlines
Split feature files by packages.
Remove already migrated JUnit test classes.
Add 'request without auth' Given step.
Add step to check response body as string.
-
22Outlines - HometaskVideo lesson
The hometask for today's lesson is massive:
Migrate update, create and delete board scenarios to outlines.
Delete migrated Test classes.
Delete unused validation arguments holders and providers.
Delete unused Boards Endpoints URLs.
Add mappings for POST and DELETE requests to be sent.
-
23BackgroundsVideo lesson
Today we will discuss the following:
What are Backgrounds.
How are the Backgrounds used.
Apply Background for Get Boards feature.
Why no hometask is needed today :)
-
24Ways to share data between stepsVideo lesson
Today we will:
Create ScenarioContext class.
Put all data to share to ScenarioContext.
Learn what ThreadLocal is.
Wrap all data to share with ThreadLocal.
Split your steps into action and assertion.
-
25Ways to share data between steps - HometaskVideo lesson
The hometask for today's lesson is:
User more elegant way to share test data.
Add picocontainer dependency to your project.
Get rid of static keywords in your scenario context.
Inject ScenarioContext as your step classes' fields.
Run all the tests to check your updates.
-
26Step arguments transformersVideo lesson
Today we will:
Learn what Step Arguments Transformers are.
Merge two steps to create request.
Create an enum to store endpoints.
Use arguments transformer to work with the enum
-
27Step arguments transformers - HometaskVideo lesson
The hometask for today's lesson:
Remove key and token from scenario.
Create a Map Transformer class.
Use @DataTableType annotation.
Store key and token values in Constants class.
-
28Hooks and tagsVideo lesson
Today we will learn:
What are hooks and tags in Cucumber.
Add Delete Board feature.
Add a step to assert board absence.
Add a hook to create board before scenario.
Add Request Auth provider class.
-
29Hooks and tags - HometaskVideo lesson
The hometask for today's lesson is:
Add Create Board feature.
Run a deleteBoard hook after scenario.
Add a step to assert board presence.
Remove migrated tests.
Remove not needed contants.

External Links May Contain Affiliate Links read more