Cypress - Assertions

Cypress has more than one type of assertions obtained from various libraries like Mocha,Chai, and so on. The assertion types are explicit and implicit.
If an assertion is applicable to the object obtained from the parent command in a chain, it is known as the implicit assertion. The popular implicit assertions include .and/.should.
These commands cannot be used as standalone. Generally, they are used when we have to verify multiple checks on a particular object.
Let us illustrate implicit assertion with an example given below −
// test suite
describe('Tutorialspoint', function () {
   it('Scenario 1', function (){
      // test step to launch a URL
      cy.visit("https://www.tutorialspoint.com/videotutorials/index.php")
		// assertion to validate count of sub-elements and class attribute value
		cy.get('.toc chapters').find('li').should('have.length',5)
		.and('have.class', 'dropdown')
   });
});
Execution Results
The output is as follows −
The output logs show two assertions obtained with should, and commands.
If an assertion is applicable to an object directly, it is known as the explicit assertion. The popular explicit assertions include assert/expect.
The command for explicit assertion is as follows −
// test suite
describe('Tutorialspoint', function () {
// it function to identify test
   it('Scenario 1', function (){
      // test step to launch a URL
      cy.visit("https://accounts.google.com")
		// identify element
      cy.get('h1#headingText').find('span').then(function(e){
         const t = e.text()
         // assertion expect
         expect(t).to.contains('Sign')
      })
   })
})
Execution Results
The output is given below −
The output logs show assertions directly applied to objects with the expect command.
Cypress has Default Assertions which are internally handled and do not require to be
invoked specifically.
Few examples are as follows −
cy.visit () − Expects the page to show the content with 200 status code.
cy.visit () − Expects the page to show the content with 200 status code.
cy.request () − Expects the remote server to be available and sends a response.
cy.request () − Expects the remote server to be available and sends a response.
cy.contains () − Expects the web element with its properties to be available in DOM.
cy.contains () − Expects the web element with its properties to be available in DOM.
cy.get () − Expects the web element to be available in DOM.
cy.get () − Expects the web element to be available in DOM.
.find () − Expects the web element to be available in DOM.
.find () − Expects the web element to be available in DOM.
.type () − Expects the web element to turn to a type able state.
.type () − Expects the web element to turn to a type able state.
.click () − Expects the web element to turn to a clickable state.
.click () − Expects the web element to turn to a clickable state.
.its () − Expects for a web element property on the existing subject.
.its () − Expects for a web element property on the existing subject.
The other Cypress assertions are as follows −
It checks the count of elements obtained from the previously chained command.
For example,
cy.get('#txt-fld').should('have.length',5)

It checks whether the web element has a certain value.
For example,
cy.get('#txt-fld').should('have.length',5)

It checks whether the web element has a certain value.
For example,
cy.get(' #txt-fld').should('have.value', 'Cypress')

It checks whether the web element possesses a certain class.
For example,
cy.get('#txt-fld'').should('have.class', 'txt')

It checks whether the web element possesses a certain text.
For example,
cy.get('#txt-fld'').should('contain', 'Cypress')

It checks whether the web element is visible.
For example,
cy.get('#txt-fld'').should('be.visible')

It checks whether the web element is available in Document Object Model (DOM).
For example,
cy.get('#txt-fld'').should('not.exist');

It checks whether the web element possesses a certain css property.
For example,
cy.get('#txt-fld'').should('have.css', 'display', 'block');


    73 Lectures 
     12 hours 

 Rahul Shetty
 Print
 Add Notes
 Bookmark this page