Resources
You can find all of the references here, broken down by the name of the lesson.
We'll cover the following
- A Short Introduction to Cypress
- Who Should Use Cypress?
- What Makes Cypress Different?
- The Testing Approach
- Time Travel
- Spies, Stubs, and Clocks
- Consistent Results
- Cross-Browser Testing
- Setting Up a New Project
- Fixtures and Integration
- Configuration
- Interacting with Elements
- Why Accessibility is Important?
- Checking Accessibility
- The Test Runner
A Short Introduction to Cypress
- GitHub Repository: https://github.com/cypress-io/cypress
Who Should Use Cypress?
- The mission of Cypress: https://docs.cypress.io/guides/overview/why-cypress.html#Our-mission
- Cypress Documentation: https://docs.cypress.io/
- Official Roadmap: https://docs.cypress.io/guides/references/roadmap
- Cypress on Twitter: https://twitter.com/cypress_io
What Makes Cypress Different?
- Mocha: https://mochajs.org/
- Mocha’s Async Support: https://mochajs.org/#asynchronous-code
- ChaiJS: http://chaijs.com/
- Chai-jQuery: https://github.com/chaijs/chai-jquery
- Sinon.js: https://sinonjs.org/
Cypress.sinon
: https://docs.cypress.io/api/utilities/sinoncy.stub
: https://docs.cypress.io/api/commands/stubcy.spy
: https://docs.cypress.io/api/commands/spy- Sinon-Chai: https://github.com/cypress-io/sinon-chai
- Lodash: https://lodash.com/
- jQuery: https://jquery.com/
- Minimatch: https://github.com/isaacs/minimatch
- Blob-util: https://github.com/nolanlawson/blob-util
- Bluebird: https://github.com/petkaantonov/bluebird
- Selenium: https://www.selenium.dev/
- Cypress Dashboard: https://www.cypress.io/dashboard/
- Dashboard Pricing: https://www.cypress.io/pricing
- Alter Network Requests: https://docs.cypress.io/guides/guides/network-requests
The Testing Approach
cy.intercept
command: https://docs.cypress.io/api/commands/interceptcy.clock
command: https://docs.cypress.io/api/commands/clock- Open issues on GitHub: https://github.com/cypress-io/cypress/issues
- Roadmap: https://docs.cypress.io/guides/references/roadmap#Upcoming-features
- Lack of hover command: https://docs.cypress.io/api/commands/hover
Time Travel
debugger
keyword: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Statements/debugger
Spies, Stubs, and Clocks
- Promises documentation: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Promise
- Sino-Chai GitHub: https://github.com/domenic/sinon-chai
- Sinon-Chai assertions: https://docs.cypress.io/guides/references/assertions#Sinon-Chai
Date
object documentation: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DatesetTimeout
documentation: https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeoutsetInterval
documentation: https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setInterval
Consistent Results
- Other factors of flakes: https://docs.cypress.io/guides/core-concepts/interacting-with-elements#Visibility
Cross-Browser Testing
- Global browser market share: https://gs.statcounter.com/browser-market-share
- Support for cross-browser testing: https://github.com/cypress-io/cypress/issues/310
- All available arguments for
cy.screenshot
: https://docs.cypress.io/api/commands/screenshot#Arguments
Setting Up a New Project
- Node download page: https://nodejs.org/en/download/
- Cypress direct download: https://download.cypress.io/desktop
Fixtures and Integration
- HTTP status codes: https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml
Configuration
- Available configuration options: https://docs.cypress.io/guides/references/configuration#Options
- Option that can be changed for test files: https://docs.cypress.io/guides/references/configuration#Cypress-config
Interacting with Elements
- List of available special type commands: https://docs.cypress.io/api/commands/type#Arguments
- All available DOM events: https://developer.mozilla.org/en-US/docs/Web/API/Element#events
Why Accessibility is Important?
- Official documentation of WAI-ARIA: https://www.w3.org/WAI/standards-guidelines/aria/
- Axe, the accessibility engine: https://www.deque.com/axe/
- WCAG: https://www.w3.org/WAI/standards-guidelines/wcag/
- Axe DevTools: https://chrome.google.com/webstore/detail/axe-devtools-web-accessib/lhdoppojpmngadmnindnejefpokejbdd
- Axe core GitHub repository: https://github.com/dequelabs/axe-core
- NPM package for Cypress Axe: https://www.npmjs.com/package/cypress-axe
- NPM package for Axe core: https://www.npmjs.com/package/axe-core
Checking Accessibility
- Custom options for running Axe: https://www.deque.com/axe/core-documentation/api-documentation/#parameters-axerun
- List of available options for customizing runs: https://www.deque.com/axe/core-documentation/api-documentation/#options-parameter
The Test Runner
- Support for Cypress: https://www.cypress.io/support/
- Docs on Why Cypress: https://docs.cypress.io/guides/overview/why-cypress
- Changelog: https://docs.cypress.io/guides/references/changelog
- Cypress Dashboard: https://www.cypress.io/dashboard/
- Selector playground: https://docs.cypress.io/guides/core-concepts/test-runner#Selector-Playground
Get hands-on with 1400+ tech skills courses.