1
resposta

Como lidar com cenarios condicionais

Estou implementando testes em um fluxo de compra em um e-commerce, onde o usuário adiciona os produtos no carrinho e ai vai para o checkout realizar o login. Mas la no painel, existe uma opção de eu ativar uma tela que aparece no meio desse fluxo.

Vi na documentação que é possivel fazer validacoes com o cy.get('body') https://i.imgur.com/rwuiEta.png, mas pensando em escalabilidade, nao me aparenta ser um caminho agradavel, pois teria que fazer isso em muitos cenários.

Como posso programar os testes, sem saber exatamente o fluxo que vai aparecer pro usuário? Sendo que tenho testar todos eles, mas o comportamento depende de como está configurado no banco de dados (módulo X pode estar ativo ou nao).

1 resposta

Oi Eduardo, tudo bem?

Desculpe a demora em retornar.

Entendo sua preocupação com a escalabilidade dos testes e a necessidade de lidar com cenários condicionais. Uma abordagem que você pode utilizar é a utilização de variáveis de ambiente ou configurações no banco de dados para definir o comportamento do teste.

Por exemplo, você pode ter uma variável de ambiente chamada "MODULO_X_ATIVO" que pode ser configurada como "true" ou "false" dependendo das configurações do banco de dados. Assim, você pode utilizar essa variável no seu código de teste para verificar se o módulo X está ativo ou não.

Aqui está um exemplo de como você pode fazer isso usando o Cypress:

describe('Fluxo de compra', () => {
  it('Realizar login', () => {
    cy.visit('/checkout');
    cy.get('#login-form').should('be.visible');
    
    // Verifica se o módulo X está ativo
    if (Cypress.env('MODULO_X_ATIVO')) {
      // Lógica para lidar com o módulo X ativo
      cy.get('#modulo-x').should('be.visible');
    } else {
      // Lógica para lidar com o módulo X inativo
      cy.get('#modulo-x').should('not.exist');
    }
    
    // Continua com o restante do teste
  });
});

Dessa forma, você pode configurar a variável de ambiente "MODULO_X_ATIVO" de acordo com as configurações do banco de dados e o teste irá se adaptar automaticamente ao comportamento esperado.

Espero que essa abordagem possa te ajudar a lidar com os cenários condicionais de forma escalável.

Ah esse curso recebeu uma atualização, você pode verificar aqui:

Um abraço e bons estudos.