Gerador de Cypress test skeleton
Gere o esqueleto de um teste Cypress (cy.visit, cy.get e assertions) a partir de URL, seletor e texto esperado. Comece a testar sua aplicação web na hora.
Cypress: testes E2E rodando dentro do navegador
O Cypress é um framework de testes end-to-end criado em 2014 por Brian Mann e a equipe da cypress.io. Seu diferencial — o que explodiu sua popularidade — é que o código de teste roda dentro do navegador, no mesmo event loop JavaScript da aplicação, em vez de controlar o browser remotamente via WebDriver (modelo do Selenium). Isso libera acesso direto ao DOM, controle síncrono sobre requisições de rede, time-travel debugging no runner gráfico e uma experiência de desenvolvimento muito mais agradável.
Um spec típico segue uma estrutura BDD familiar: describe('fluxo', () => { it('faz X', () => { ... }) }). Dentro do it você encadeia comandos no objeto global cy: visita uma URL, consulta elementos, interage e checa o resultado. O skeleton gerado nesta página segue essa estrutura para você começar a escrever specs reais imediatamente.
Comandos centrais do dia a dia
cy.visit('/login')— carrega uma página.cy.get('seletor')— busca por seletor CSS.cy.contains('texto')— encontra elemento pelo conteúdo textual.cy.click(),cy.type('oi'),cy.check(),cy.select('opcao')— interações.cy.url().should('include', '/dashboard')— asserções de URL.- Asserções:
should('be.visible'),should('contain', 'X'),should('have.class', 'active'),should('have.length', 5).
Os comandos são chainable: cada um retorna um Subject que o próximo consome, parecido com jQuery. Detalhe importante: as asserções têm retry-ability embutida — elas reavaliam automaticamente até a condição passar ou estourar o timeout (4 segundos por padrão), reduzindo drasticamente flakiness causado por animação ou dados assíncronos.
Controle de rede, fixtures e sessões
Mockar rede é um dos pontos fortes do Cypress. cy.intercept('GET', '/api/users', { fixture: 'users.json' }) substitui uma chamada real por dado determinístico; cy.intercept('POST', '/api/login').as('login') dá um alias que você espera com cy.wait('@login'). cy.fixture('users.json') carrega dados de stub, e cy.request chama APIs diretamente — perfeito para semear estado antes do teste. cy.session(id, setup) persiste o estado de login entre testes, evitando que você logue do zero a cada execução.
Component testing, Cypress Cloud e limitações
A partir da versão 10, o Cypress unificou E2E e component testing: você sobe componentes React, Vue, Svelte ou Angular isoladamente, com a mesma API e o mesmo runner. Cypress Cloud é o SaaS pago que agrega runs, libera paralelização, screenshots/vídeos e detecção de flaky tests no CI. Limitações importantes: o Cypress só roda navegadores Chromium e Firefox (não tem Safari/WebKit); navegação cross-origin exige configuração explícita; suporte a abas e iframes é limitado; e a falta de multi-context (versus Playwright) torna alguns cenários mais trabalhosos.
Cypress vs Playwright
A alternativa mais comum hoje é o Playwright, da Microsoft. O Cypress costuma ganhar em experiência do desenvolvedor — runner interativo, time travel, API mais simples. O Playwright ganha em cobertura cross-browser (Chromium + Firefox + WebKit), multi-context nativo para sessões paralelas, geralmente mais rápido no CI e autowait mais forte. Em projetos greenfield com requisito cross-browser o Playwright costuma ser a aposta mais segura; em times já investidos no Cypress com preferência pelo UX, o Cypress segue uma escolha sólida.
Perguntas frequentes
Dá para gravar testes em vez de escrever? Sim — o Cypress Studio permite interagir com a aplicação e exporta os comandos correspondentes. É ótimo para prototipar; para manter no longo prazo, specs escritos à mão ainda são preferíveis.
Meus testes ficam flaky no CI. O que faço? Use cy.session para login, mocke chamadas de rede com cy.intercept em vez de depender de backend real, prefira asserções com retry em vez de cy.wait(ms) e considere a detecção de flaky do Cypress Cloud.
O Cypress testa mobile? Ele redimensiona o viewport com cy.viewport('iphone-x'), mas não roda em devices iOS/Android reais nem em emuladores. Para teste em device real, olhe Appium ou Playwright com contextos de emulação mobile.
Posso chamar APIs sem passar pela UI? Sim — cy.request('POST', '/api/users', payload) bate direto no backend, perfeito para semear dados e verificar o comportamento do servidor.
O gerador envia meu código para algum lugar? Não — o skeleton do spec é gerado inteiramente no seu navegador. Nada é enviado.
Ferramentas Relacionadas
Gerador de Vitest test skeleton
Gera arquivo Vitest (TypeScript) com describe/it/expect para uma função importada de um módulo.
Gerador de Jest test skeleton
Gere o esqueleto de um teste Jest com describe, beforeEach e um teste de exemplo já importando o seu módulo. Comece a testar seu código JavaScript na hora.
Gerador de Cartões Teste do Stripe
Lista interativa dos cartões de teste oficiais do Stripe por cenário (sucesso, decline, 3DS, fraude, expired) para sandbox.
Gerador de Skeleton CSS Loader
Gera o CSS de skeleton loaders animados (shimmer) para placeholders enquanto conteúdo real carrega. Cor e velocidade ajustáveis.
Gerador MVC Skeleton (PHP)
Gera esqueleto MVC PHP minimalista (Controller, Model, View) a partir do nome de um recurso. Pronto para Laravel-like apps.
Gerador de Nome de Dragão (RPG)
Gera nomes épicos de dragão antigo com sílabas guturais (Vermithrax, Sardiokar) para campanhas de fantasia.