openskills.info
Cypress Fundamentals logoCourse Preview

Cypress Fundamentals

Cypress is an open-source JavaScript test runner for web applications. It drives a real browser to exercise end-to-end journeys, mount individual UI components, and send direct HTTP checks, so you verify behavior the way users and browsers actually experience it.

itSoftware engineering

Don't Panic — Cypress Fundamentals

Cypress is the test runner that sits in the browser with your app and clicks around like a slightly obsessive colleague who never gets bored of the login form. A Node process tags along for the unglamorous work: binaries, screenshots, videos, talking to disks and databases. That split is the whole architecture. Everything else is detail hanging off it.

Before tools like this, teams drove browsers from the outside through remote protocols and then wondered why the test could not see what the page could see. Cypress flipped the default: your commands enqueue in the same run loop as the application. They look like ordinary method calls. They are not. They line up on a queue, yield subjects to each other, and mostly refuse to run at the moment you wrote them.

Three ideas carry the rest of the course. First, queries and assertions retry; actions wait until they are allowed, then fire once. That is why cy.wait(5000) is the villain of so many suites and why a green mid-chain .should() can still strand you on a detached DOM node after a re-render. Second, the network is a first-class control surface: cy.intercept to stub or spy, cy.request to seed state without performing interpretive dance through every form, cy.session so you stop logging in like it is a personality trait. Third, one project can hold end-to-end visits, component mounts, HTTP checks, and accessibility scans, but a passing mount does not mean checkout works. Different risks, different entry commands.

The surprise for many newcomers is the list of things Cypress will not pretend to be. It will not drive two browsers at once for your chat app fantasy. It will not let browser test code quietly import your server's database module. It is not a crawler, a load generator, or a hobby kit for automating someone else's website. Hover is awkward. WebSockets are awkward. Electron as the default CI browser is on the way out, so pin a real Chrome before the future arrives politely.

If you want the map, read the Intro and keep the Cheatsheet open while you write specs. If you want the fingers-on version, use the Practice Reference and the smoke Exercise. If you want the scars other teams already paid for, open Field Notes and learn why fixed waits and post-click chaining keep showing up in incident writeups. Then follow Reference into the official docs for the exact API you are about to argue with.

Where this skill leads

Relevant careers

See how this topic contributes to broader role-level skill maps.

Sources