In this tutorial, we will cover different types of Cypress Assertions such as the default, implicit and explicit assertions and talk about the difference between the should and the expect assertions.
Cypress uses the Chai assertion library as well as the extensions of Sinon & jQuery to provide you with dozens of powerful assertions for free.
Default Assertions
Cypress comes with many default assertions that can be used without having to explicitly define assertions, such as –
cy.visit()
: every-time you visit a page, Cypress expects the page to return with a 200 status codecy.get()
: the get command expects the element to exist in the DOM first before trying to access it
Implicit Assertions
The implicit assertions used the should()
or the and()
commands when making assertions. This is the preferable way of making assertions in Cypress.
cy.get('h1').should('have.text', 'My Heading')
You can even chain multiple assertions together –
cy.get('h1') .should('have.text', 'My Heading') .and('have.class', 'highlighted')
Explicit Assertions
You should use the Explicit assertions when you would like to make multiple assertions for the same subject or when you would like to manipulate your subject before making your assertion. For explicit assertions, you will use the expect
command.
cy.get("h1.elementor-heading-title").should(($heading) => { // manipulate your text here and assert below expect($heading.text()).to.eq("Think different. Make different."); // add further expect assertions here });
Check out the video below to see learn more about Cypress Assertions –
I hope this post helped you out, let me know if you have any questions in the comments below!
Happy testing!