Slide 1

Slide 1 text

DESENVOLVIMENTO GUIADO POR TESTES EM JAVASCRIPT Inajara Leppa

Slide 2

Slide 2 text

Olar! Eu sou a Inajara Leppa, desenvolvedora na Creditas e defensora dos testes automatizados. Nas horas vagas eu atuo como voluntária em ONGs de educação e assisto séries acompanhada de um bom vinho! inajara_ inajara-leppa

Slide 3

Slide 3 text

A CONFUSÃO ENTRE OS TERMOS É COMUM E POR ISSO É IMPORTANTE SABER DIFERENCIAR Teste de unidade é quando você testa uma pequena parte do código de forma isolada do resto. Ex: Uma função ou classe. É também chamado de testes unitários. Você pode escrever testes unitários sem necessariamente estar praticando o TDD. TDD TESTE DE UNIDADE

Slide 4

Slide 4 text

Test Driven Development Desenvolvimento guiado por testes

Slide 5

Slide 5 text

TDD É UMA METODOLOGIA Desenvolver código guiado por testes irá ajudar no COMO realizar uma funcionalidade. O foco dessa metodologia é no design que será utilizado para construir o código e não apenas nos testes. Exige prática, por isso tenha paciência e aplique sempre que possível. Não trate como bala de prata, pois nem sempre irá fazer sentido.

Slide 6

Slide 6 text

Vermelho - o que você deseja garantir Verde - como fazer seus testes passarem Refatorar - como melhorar seu design O CICLO (MANTRA) DO TDD RED (VERMELHO) GREEN (VERDE) REFACTOR (REFATORA)

Slide 7

Slide 7 text

RED / GREEN / REFACTOR

Slide 8

Slide 8 text

No content

Slide 9

Slide 9 text

DESENVOLVIMENTO GUIADO POR TESTES É DIFERENTE DE ESCREVER O TESTE PRIMEIRO Como vimos na imagem anterior apenas escrever os testes antes de desenvolver o código não é TDD, pois o diferencial da metodologia é a pratica de refatoração que irá melhorar o design e deixar o código mais simples e extensível. TDD TFD

Slide 10

Slide 10 text

RED / GREEN / REFACTOR

Slide 11

Slide 11 text

TDD = TFD + REFACTOR

Slide 12

Slide 12 text

mostre-me o código https://github.com/LeeCheneler/from-fizzbuzz-to-react-practical-test-driven-development-in-javascript https://medium.com/@lee_85949/from-fizzbuzz-to-react-practical-test-driven-development-in-javascript-9fd05a4d1ad6

Slide 13

Slide 13 text

TDD TFD COMO FICA O TDD NA PIRÂMIDE DE TESTES? O TDD pode ser aplicado em qualquer nível da pirâmide de testes e não apenas nos testes de unidade. Existem vantagens de utilizar a metodologia em qualquer tipo de testes SIM.

Slide 14

Slide 14 text

VANTAGENS Melhora qualidade e cobertura do código Melhora a arquitetura da aplicação e diminui o desacoplamento Aumenta o grau de certeza do que foi desenvolvido Ajuda a pensar nos diferentes cenários do que está sendo desenvolvido

Slide 15

Slide 15 text

DESVANTAGENS Difícil de aplicar em aplicações legadas Um desafio para aprender. Pode ser intimidante e difícil para qualquer pessoa aprender no início, especialmente tentando aprender por conta própria. O TDD by the book exige que outras metodologias sejam aplicadas em conjunto. Ex: Doubles (mocks and stubs)

Slide 16

Slide 16 text

Moral da história Pense na funcionalidade e nos seus diferentes cenários antes de sair escrevendo código Refatore continuamente seu código e construa um código limpo e de fácil manutenção. PENSE ANTES REFATORE TESTES SEM TDD Escreva testes mesmo que não seja utilizando a metodologia do TDD.

Slide 17

Slide 17 text

Obrigada inajara_ inajara-leppa