Top Banner
5 fundamentos essenciais de padrões xUnit Stefan Teixeira @stefan_teixeira [email protected]
53

Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit

Jan 10, 2017

Download

Software

Stefan Teixeira
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit

5 fundamentos essenciais de padrões

xUnit

Stefan Teixeira @stefan_teixeira

[email protected]

Page 2: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit

• QA Automation Engineer @ Toptal • Co-organizador dos Meetups DevOps Carioca e Grupo de

Testes Carioca • Blogs: stefanteixeira.com.br (pt-br) / stefanteixeira.com

(en)

Contatos:• E-mail: [email protected] • Twitter: twitter.com/stefan_teixeira • LinkedIn: linkedin.com/in/stefanteixeira • GitHub: github.com/stefanteixeira • SlideShare: slideshare.net/stefanteixeira

Sobre

Page 3: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit

Motivação

Page 4: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit

Testes Automatizados

Page 5: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit

Feedback rápido é essencial!

Page 6: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit

Testes facilitam refactoring

Page 7: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit

O que é xUnit?

Page 8: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit
Page 9: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit

http://xunitpatterns.com/

Page 10: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit
Page 11: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit

Alguns frameworks

Page 12: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit

Mas é só para unit tests? Não!

Page 13: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit

5 fundamentos essenciais

Page 14: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit

1. Conceitos básicos

Page 15: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit

Classes de teste

Page 16: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit

Métodos de teste

Page 17: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit

Four-phase Test

Page 18: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit

Assertions

Page 19: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit

Suites

Page 20: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit

2. Verificação de resultados

Page 21: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit

Delta assertion

Page 22: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit
Page 23: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit

Guard assertion

Page 24: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit
Page 25: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit
Page 26: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit
Page 27: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit

Custom assertions

Page 28: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit
Page 29: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit
Page 30: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit

3. Organização de testes

Page 31: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit

Suites

Page 32: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit

Helpers

Page 33: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit

Métodos utilitários

Page 34: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit

4. Manutenção de fixtures

Page 35: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit

Setup/Teardown

• @BeforeClass

Page 36: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit

Setup/Teardown

• @BeforeClass

• @Before

Page 37: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit

Setup/Teardown

• @BeforeClass

• @Before

• @After

Page 38: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit

Setup/Teardown

• @BeforeClass

• @Before

• @After

• @AfterClass

Page 39: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit

Shared fixtures

Page 40: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit
Page 41: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit

Shared fixtures

• Tempo de execução mais rápido

Page 42: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit

Shared fixtures

• Tempo de execução mais rápido

• Cuidado com estado entre testes!

Page 43: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit

Fresh fixtures

Page 44: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit
Page 45: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit

Fresh fixtures

• Tempo de execução mais lento

Page 46: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit

Fresh fixtures

• Tempo de execução mais lento

• Evita possíveis problemas de estado entre testes

Page 47: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit

5. Padrões para testes com bancos de dados

Page 48: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit

Testando Stored Procedures

Page 49: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit

Transaction rollback

Page 50: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit

Table truncation

Page 51: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit

Leituras recomendadas

Page 52: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit
Page 53: Agile Brazil 2016 - 5 fundamentos essenciais de padrões xUnit

Stefan Teixeira @stefan_teixeira

[email protected]

Obrigado!