Skip to content

Instantly share code, notes, and snippets.

@Victorcorcos
Last active October 26, 2021 06:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Victorcorcos/9d594107aafa6bc02ea16e1d689a17da to your computer and use it in GitHub Desktop.
Save Victorcorcos/9d594107aafa6bc02ea16e1d689a17da to your computer and use it in GitHub Desktop.
BDD nos Testes Automáticos 🧱

BDD Blocks

Os blocos devem ter boas descrições explicando os comportamentos, seguindo os princípios de Behavior Driven Development (BDD).

Além disso, o código de teste deve ser organizado semanticamente dentro do bloco apropriado com base nesta regra:

1) describe

Deve ser responsável por descrever os cenários.

Exemplos ✍️

  1. "quando o usuário clica no botão"
  2. "depois de renderizar a popup"
  3. "enquanto os dados estão sendo carregados"

2) beforeEach

(ou before, beforeAll)

Deve ser responsável por preparar os cenários.

  • configurar o ambiente
  • declarar variáveis
  • executar operações
  • Exemplo: clicks, typings, scrolls ...

3) it

Deverá ser responsável por finalmente testar os resultados.

Exemplos ✍️

  1. "deve abrir um modal em branco"
  2. "deve exibir as colunas fixas"
  3. "não deve ser possível editar"
  4. "deve mostrar uma mensagem de sucesso"
  5. "deve atualizar a tabela"

Outros blocos 💭

Existem outros blocos também (beforeAll, after, afterAll, let, etc...), é muito bom aprender e entender quando usá-los, mas os três acima (describe, before, it) são os principais do jest 😉

Resultado do Teste

Dê uma olhada neste exemplo sobre como o resultado do teste usando princípios do Behavior Driven Development (BDD) será exibido no terminal ao executá-lo,

Resultado

Referências

  1. https://www.betterspecs.org/
  2. https://www.tomdalling.com/blog/mentoring/write-detailed-rspec-example-descriptions/
  3. https://www.rubyguides.com/2018/07/rspec-tutorial/
  4. https://medium.com/javascript-scene/behavior-driven-development-bdd-and-functional-testing-62084ad7f1f2
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment