Skip to main content

Introdução aos testes

Objetivos de aprendizagem

Após concluir esta unidade, você estará apto a:

  • Descrever o objetivo e as diferenças entre testes de unidade e testes de ponta a ponta.
  • Explicar o papel dos testes de unidade nos componentes Web do Lightning.

Pré-requisitos

Neste módulo, você vai desenvolver componentes Web do Lightning e testes de unidade dentro de um projeto do Salesforce DX usando o editor do Visual Studio Code. Se você não estiver familiarizado com os componentes Web do Lightning, com o Salesforce DX ou usando o Visual Studio Code para desenvolvimento do Salesforce, recomendamos que conclua os projetos Início rápido: Salesforce DX, Início rápido: Visual Studio Code para desenvolvimento do Salesforce e Início rápido: Componentes web do Lightning antes de prosseguir.

A importância dos testes

“Qualquer bug não detectado na fase de design exigirá dez vezes mais tempo para detectar na fase de codificação e outras dez vezes mais na fase de depuração.” 

— Dr. Nikolai Bezroukov, The Art of Debugging

Pesquisa de bugs de software representada por uma lupa sobre uma joaninha

A depuração e o teste são processos relacionados, mas distintos no desenvolvimento de software. O teste tenta localizar e relatar erros. A depuração tenta identificar a causa desses erros e corrigi-los. E, de acordo com o Dr. Nikolai Bezroukov, quando se trata de encontrar e esmagar bugs em seu código, quanto antes melhor.

Em um mundo ideal, o software não teria nenhum bug. Mas a realidade é que cometemos erros, os requisitos são incompreendidos e os aplicativos são usados de maneiras nunca antes previstas. O teste ajuda a descobrir esses problemas para que eles possam ser corrigidos. Quanto mais cedo você encontrar bugs, mais “barato” eles custarão. Se os bugs atingirem os próximos estágios de desenvolvimento (ou, no pior dos casos, a produção), mais pessoas e processos serão envolvidos no processo de identificação e correção.

Existem dois tipos de testes que costumam ser executados para aplicativos do Salesforce: testes de unidade e testes de ponta a ponta. As diferenças entre eles estão no escopo e no objetivo.

Testes de unidade

Os testes de unidade se concentram em testar trechos pequenos e discretos de funcionalidade em um aplicativo. Para facilitar o teste de unidade, crie seu aplicativo usando pequenas unidades testáveis, em vez de escrever um único e longo método ou classe do Apex. Isso significa modularizar o código em métodos distintos que podem ser testados de forma independente. Da mesma forma, em vez de escrever um único e enorme componente do Lightning para um aplicativo, modularize os recursos em componentes menores que possam ser testados de forma independente. Testes de unidade curtos, breves e fáceis de executar incentivam os desenvolvedores a escrevê-los e executá-los como parte de seu processo contínuo de desenvolvimento e integração. Isso garante que os bugs sejam identificados e corrigidos mais cedo. Confirma o desenvolvimento orientado por testes (TDD) para obter mais informações sobre esse processo.

Testes de ponta a ponta

Os testes de ponta a ponta se concentram em testar a jornada inteira de um usuário ou aplicativo. No caso dos aplicativos Web, isso geralmente envolve testes em um navegador para validar como o código e os componentes de uma página funcionam juntos em um ambiente de teste, como uma sandbox ou organização temporária.

Os testes de ponta a ponta tendem a ser mais lentos do que os testes de unidade porque cobrem mais funcionalidades do aplicativo por teste. Testes de ponta a ponta também são menos confiáveis do que testes de unidade por causa das inconsistências aleatórias de um ambiente ativo, como latência de rede, cache, dependência de sistemas de terceiros, problemas de infraestrutura e assim por diante. Essas inconsistências podem fazer com que um teste passe uma vez e falhe na próxima. Apesar desses inconvenientes, os testes de ponta a ponta oferecem uma validação valiosa e mais realista do aplicativo e de seus pontos de integração do que os testes de unidade.

Testes de unidade vs. testes de ponta a ponta

Vamos dar uma olhada em como os testes de unidade e os testes de ponta a ponta funcionam na prática. Como exemplo, usaremos o componente Web do Lightning api-property do repositório lwc-recipes, uma coleção de exemplos de código para componentes Web do Lightning na Salesforce Platform.

O componente <c-api-property> é composto pelos componentes (1) <lightning-card>, (2) <lightning-input> e (3) <c-chart-bar>.

  1. O componente <lightning-card> exibe o título do ApiProperty e contém os outros dois componentes.
  2. O componente <lightning-input> lida com a entrada de um número pelo usuário e transmite eventos de alteração de números.
  3. O componente <c-chart-bar> renderiza um gráfico de barras com base em seu valor percentual.

Componente de propriedade da API com seus componentes filho destacados para dar ênfase

Cada um desses três componentes tem sua própria API pública, seu estado interno e seu comportamento. E cada um desses componentes poderia ter seus próprios testes de unidade para validar suas funcionalidades isoladamente dos outros componentes. Na verdade, os testes de unidade para o componente <c-api-property> podem assumir que os componentes <lightning-card>, <lightning-input> e <c-chart-bar> serão executados como esperado ou podem imitar seus comportamentos para simular diferentes cenários em várias condições.

Neste exemplo, um teste de ponta a ponta carregaria o componente <c-api-property> em uma página de navegador, inseriria valores percentuais no campo de entrada e verificaria se o gráfico de barras renderiza corretamente. Sendo um teste de ponta a ponta, não há nenhuma simulação de dados ou comportamentos – você está confirmando como todos os três componentes funcionariam juntos quando implantados para seus usuários.

Resumo

A tabela a seguir é uma comparação geral dos prós e contras de testes de unidade e testes de ponta a ponta. 


Testes de unidade
Testes de ponta a ponta
Testes executados rapidamente
Sim
Não
Testes confiáveis
Sim
Não
Testes precisos que permitem identificar problemas com exatidão
Sim
Não
Testes que cobrem vários recursos de um aplicativo de uma vez
Não
Sim
Simulam um usuário real
Não
Sim

Agora que você sabe mais sobre as diferenças entre testes de unidade e testes de ponta a ponta, vamos ver como eles são feitos na prática. O restante deste módulo se concentra em testes de unidade de componentes Web do Lightning.

Recursos

Continue a aprender de graça!
Inscreva-se em uma conta para continuar.
O que você ganha com isso?
  • Receba recomendações personalizadas para suas metas de carreira
  • Pratique suas habilidades com desafios práticos e testes
  • Monitore e compartilhe seu progresso com os empregadores
  • Conecte-se a orientação e oportunidades de carreira