Cypress End-to-End Testing - Getting Started
Automated testing is a vital part of modern application development. Of course, website development is no exception - you must be able to run automated tests to efficiently detect bugs and regressions. This course teaches you how to write and run end-to-end (E2E) tests with Cypress - one of the most popular web development E2E testing tools can you can use these days!
More
You will learn:
- What exactly Cypress is and why E2E testing matters
- How to install and use Cypress
- How to write and run E2E tests with Cypress
- How to simulate realistic website user flows by selecting elements and simulating user interaction (button clicks, keyboard typing & more)
- How to write good assertions (and what assertions are)
- Which core features and concepts Cypress offers
- How to use basic and more advanced Cypress concepts
- How to efficiently test third-party code
- How to deal with network (HTTP) requests and databases
- How to test user authentication flows
- And much more!
All these topics will be taught from the ground up, with no prior Cypress knowledge required! You do need basic web development and JavaScript knowledge though.
This course focuses on the core Cypress concepts and explores all basic as well as various more advanced Cypress features.
By the end of this course, you'll have a solid set of Cypress fundamentals and you'll be ready to dive deeper into Cypress and end-to-end testing!
Watch Online Cypress End-to-End Testing - Getting Started
# | Title | Duration |
---|---|---|
1 | Welcome To The Course! | 01:06 |
2 | What is Cypress & End-to-End Testing? And Why Should You Care? | 04:16 |
3 | Installing & Using Cypress | 06:01 |
4 | How Cypress Tests Are Organized & Stored | 02:12 |
5 | Adjusting Our First Test | 02:52 |
6 | Writing A More Realistic Test | 03:56 |
7 | About The Course | 04:37 |
8 | Module Introduction | 01:25 |
9 | Project Setup | 03:29 |
10 | Creating Suites & Tests | 02:34 |
11 | Visiting Pages inside of E2E Tests | 03:34 |
12 | Let the IDE (VS Code) Help You | 01:40 |
13 | Selecting Elements & Evaluating Test Results | 03:41 |
14 | Selecting By Text | 04:24 |
15 | Implicit and Explicit Assertions | 05:57 |
16 | get() vs find() | 04:52 |
17 | Why You Need To Simulate User Interaction | 01:54 |
18 | Simulating User Interaction | 08:20 |
19 | Proper Assertions Are Key! | 04:13 |
20 | Time To Practice! | 04:00 |
21 | Simulating Keyboard Typing & Writing Good Assertions | 11:36 |
22 | Checking For Partial Text | 03:46 |
23 | Selecting Dropdown Values | 07:36 |
24 | Cypress Tests Run In Isolation | 02:02 |
25 | Time For More Queries | 06:01 |
26 | Summary | 04:30 |
27 | Module Introduction | 00:35 |
28 | Project Setup | 01:42 |
29 | Selecting Elements - The Best Practice Way | 07:31 |
30 | Testing Page Navigation | 05:06 |
31 | More on Selecting Elements | 04:01 |
32 | Repetition and More Assertions | 07:02 |
33 | Chaining Commands | 02:02 |
34 | Working with Values & Aliases | 03:01 |
35 | Getting More Direct Element Access via then() | 06:35 |
36 | Simulating Special Key Presses | 03:16 |
37 | Another Example | 06:48 |
38 | Losing & Gaining Focus | 05:57 |
39 | Aliases In Action | 04:00 |
40 | Using Cypress Studio For Test Evaluation | 02:37 |
41 | Running Tests Without Cypress Studio & Working with Screenshots + Videos | 02:55 |
42 | Changing Subjects | 07:10 |
43 | Taking Screenshots | 01:33 |
44 | should() instead of then() | 03:27 |
45 | Summary | 04:22 |
46 | Module Introduction | 01:12 |
47 | Project Setup | 00:52 |
48 | The Global Config File | 01:54 |
49 | Understanding Timeouts | 02:49 |
50 | Global vs Local Config | 01:31 |
51 | Setting the Test Browser | 01:06 |
52 | Configuring the baseURL | 02:29 |
53 | Sharing Logic with Test Hooks | 04:38 |
54 | Introducing Custom Commands & Queries | 01:34 |
55 | Creating a Custom Command | 05:40 |
56 | Creating a Custom Query | 08:20 |
57 | Understanding Tasks | 05:18 |
58 | Summary | 03:00 |
59 | Module Introduction | 00:53 |
60 | Starting Project | 02:04 |
61 | Understanding the Problem | 04:19 |
62 | Understanding Stubs | 02:39 |
63 | Creating & Using a Stub | 08:26 |
64 | When Empty Stubs Are Not Enough | 05:13 |
65 | Adding a Fake Stub Implementation | 07:26 |
66 | Using Stubs Across Tests | 05:51 |
67 | Stubs with Return Values | 06:14 |
68 | Evaluating Stub Arguments | 05:34 |
69 | Using Fixtures | 06:38 |
70 | Understanding Spies | 03:54 |
71 | Creating & Using Spies | 04:20 |
72 | The Problem With Timers | 05:55 |
73 | Manipulating the Clock | 02:41 |
74 | Summary | 01:38 |
75 | Module Introduction | 01:11 |
76 | Starting Project | 03:56 |
77 | Writing a First (Problematic) Test | 05:48 |
78 | The Problem with Tests & Databases | 02:14 |
79 | Creating a Test Database | 03:14 |
80 | Seeding the Test Database Before Every Test | 05:28 |
81 | Another Database-dependent Test | 04:35 |
82 | Understanding & Using Interceptors | 07:45 |
83 | You Can't Always Use Interceptors | 01:27 |
84 | More Intercepting! | 02:19 |
85 | Testing APIs with Test Requests | 05:52 |
86 | Summary: Different Network Request Strategies | 01:48 |
87 | Testing Authentication Flows & Asserting Cookie Values | 08:06 |
88 | Adding a "Login" Test | 02:24 |
89 | Creating a Reusable Login Command | 03:38 |
90 | Accessing Interceptor Request & Response Data | 07:53 |
91 | Summary | 01:39 |
92 | Roundup & Next Steps | 03:28 |