
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.
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.
In this video lesson you will learn how to use resources for the lectures.
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.
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.
Today we will learn:
Brief BDD introduction
The basics of BDD
The BDD process
The BDD benefits
Why BDD is needed
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.
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.
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.
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
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
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?
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
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.
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.
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.
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
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.
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.
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.
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.
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.
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 :)
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.
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.
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
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.
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.
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.
Today we will do the following:
Create Test Runner class.
Add JUnit Platform Suite dependency.
Add basic configurations for Test Runner.
Add run by tag option to runner.
The hometask for today's lesson is:
Add more tags to your tests.
Investigate and tag expression.
Find how to work with or tag expression.
Try out not tag expression.
Here is our agenda for today. We will learn:
Why do we need to run tests via CMD?
Which Gradle tasks can be used to do so?
How to run our tests via CMD?
Where test results report is stored?
How to run a few Gradle tasks in a row?
Today we will do the following:
Attach Pretty Cucumber report to our project
Add JSON report generation to Test Runner.
Configure report in build.gradle file.
Add hook to print response to report.
Investigate how generated report looks like.
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!