8000 GitHub - wlsf82/live-tat-179: Perguntas de entrevistas para vagas de QA
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

wlsf82/live-tat-179

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 

Repository files navigation

Perguntas de entrevistas para vagas de QA

1 - Se eu não tenho acesso ao backend, mas quero verificar se uma mesma resposta da API sempre gera o mesmo resultado no frontend, como posso fazer isso?

Mostrar resposta

cy.intercept(method, url, staticResponse)


2 - Quais são os design patterns mais comuns utilizados com Cypress?

Mostrar resposta
  • Custom Commands
  • App Actions
  • Page Objects (infelizmente na minha opinião)
  • Gherkin (infelizmente também na minha opinião)
  • fixtures para dados de testes e mocks

3 - Se você está usando um seletor CSS que muda com frequência, exigindo constantes ajustes no script de teste, o que você faria?

Mostrar resposta
  1. Procurar um seletor mais estável
  2. Adição de atributos data-testid para fins de testabilidade
  3. Uso das diferentes combinações possíveis com o comando cy.contains(). Ex. cy.contains('label', 'Phone Number').next().type('5555555') // Imaginando que o próximo elemento depois do label seria o input com o qual quero interagir

4 - Se você precisa testar uma funcionalidade, mas uma parte dela está demorando para renderizar, como você lida com essa situação?

Mostrar resposta
  1. Identificar o motivo pelo qual está demorando.

5 - Em que situações devo usar .should() ou .then() no Cypress?

Mostrar resposta
  • .should para assertions (devido ao mecanismo de retriability do Cypress)

Exemplos:

cy.get('ul li').should('have.length', 5) // Primeiro aguarda pela quantidade certa de list items
cy.get('li').last().should('have.text', 'some-text') // Para então verificar o conteúdo do último

// Também é possível passar ao comando .should uma função de callback a qual recebe o "sujeito" gerado pelo comando anterior
cy.get('ul li').should(($listItems) => {
  cy.wrap($listItems).each(() => {/* do something with each list item */})
})
  • .then para trabalhar com o "sujeito" gerado pelo comando anterior.
cy.request(method, url, body).then((response) => {
  /* lógica que busca um token e o armazena em uma variável "global" que possa ser utilizada por outro comando (ou teste) */
})

6 - Como você testaria se um elemento deixou de estar visível na tela?

Mostrar resposta

Primeiro, faço uma asserção positiva para garantir que estou no lugar certo, e então, faço algo como .should('not.be.visible') ou .should('not.exist') dependendo se o elemento está "escondido" por uma regra de CSS ou se deixou de estar no DOM.

0