Cypress tests use describe blocks to group tests and it blocks for individual tests, both with arrow functions.
Step 2: Check syntax correctness
describe('Test name', () => { it('does something', () => { }) }) correctly shows describe with an it inside using arrow functions. Others use invalid or unsupported syntax.
A. Incorrect assertion keyword, should be should('be.visible')
B. Missing parentheses in should('visible')
C. Wrong selector syntax for class
D. Missing it block inside describe
Solution
Step 1: Check assertion syntax
The assertion should('visible') is incorrect. The correct form is should('be.visible') to check visibility.
Step 2: Verify other parts
The selector .button is correct for class, and it block is present. So only the assertion keyword is wrong.
Final Answer:
Incorrect assertion keyword, should be should('be.visible') -> Option A
Quick Check:
Use should('be.visible') for visibility [OK]
Hint: Use exact assertion keywords like 'be.visible' [OK]
Common Mistakes:
Using 'visible' instead of 'be.visible'
Confusing selector syntax for classes
Omitting it block inside describe
5. You want to write a Cypress test that visits https://example.com, clicks a button with class .submit-btn, and then checks if a success message with id #success-msg is visible. Which of the following test codes correctly implements this?
hard
A. describe('Submit test', () => {
it('clicks and checks success', () => {
cy.visit('https://example.com')
cy.get('.submit-btn').click()
cy.get('#success-msg').should('be.visible')
})
})
B. describe('Submit test', () => {
it('clicks and checks success', () => {
cy.visit('https://example.com')
cy.get('#submit-btn').click()
cy.get('.success-msg').should('visible')
})
})
C. describe('Submit test', () => {
it('clicks and checks success', () => {
cy.visit('https://example.com')
cy.click('.submit-btn')
cy.get('#success-msg').should('be.visible')
})
})
D. describe('Submit test', () => {
it('clicks and checks success', () => {
cy.visit('https://example.com')
cy.get('.submit-btn').click()
cy.get('#success-msg').should('visible')
})
})
Solution
Step 1: Verify selectors and commands
describe('Submit test', () => {
it('clicks and checks success', () => {
cy.visit('https://example.com')
cy.get('.submit-btn').click()
cy.get('#success-msg').should('be.visible')
})
}) uses correct selectors: .submit-btn for class and #success-msg for id. It uses cy.get().click() correctly.
Step 2: Check assertion syntax
The code uses should('be.visible'), which is the correct assertion for visibility. Other options have wrong selectors or incorrect assertion keywords.
Final Answer:
describe('Submit test', () => {
it('clicks and checks success', () => {
cy.visit('https://example.com')
cy.get('.submit-btn').click()
cy.get('#success-msg').should('be.visible')
})
}) -> Option A