Angular

Component

Harnesses

Angular

Component

Harnesses

Eduardo Florence

@eduardoflorence

eduardo@infolink.com.br

github.com/eduardoflorence

Desenvolvedor Full Stack

slides.com/eduardoflorence

Testes só atrasam a

entrega da aplicação!

Qual o problema a ser resolvido?

No frontend, ao escrevermos testes para componentes, geralmente precisamos de uma consulta a um seletor CSS. 

Se o Layout/CSS mudam, os testes quebram.

Page Objects

"Ao escrever testes em uma página da web, você precisa consultar os elementos dessa página da web para clicar nos links e determinar o que é exibido. No entanto, se você escrever testes que manipulam os elementos HTML diretamente, seus testes serão frágeis para mudanças na IU. Um Page Object envolve uma página HTML ou fragmento com uma API específica, permitindo que você manipule os elementos da página sem vasculhar o HTML."

Martin Fowler

O que é Harness?

Arreio, toda a estrutura que veste um cavalo (sela, estribo, chicote) para que possamos cavalgá-lo

Angular Component Harnesses

Ferramental necessário para “vestir” um componente e ser possível testá-lo. Ele permite criar a API pela qual um teste irá interagir com um componente

Angular Component Harnesses

  • Disponibilizado pelo pacote @angular/cdk/testing
  • Foi introduzido no angular 9
  • Inicialmente para testar componentes do Angular Material
  • Agora disponível para uso em qualquer componente

Visão Geral de Testes

Benefícios

  • O teste é isolado das atualizações internas de um componente (ex.: alteração do seu DOM)
  • Testes de componentes confiáveis, estáveis ​​e legíveis
  • Testes não quebram durante a atualização de sua biblioteca de componentes
  • Redução da complexidade para escrever um teste

Autor

de Testes

Autor

de Componente Harness

Autor

de Ambiente Harness

Funcionalidades

Hands On

Referências

Eduardo Florence

@eduardoflorence

eduardo@infolink.com.br

github.com/eduardoflorence

Desenvolvedor Full Stack

slides.com/eduardoflorence

Made with Slides.com