SlideShare a Scribd company logo
1 of 31
Download to read offline
O que você precisa saber
sobre testes unitários
em ambiente ágil
Índice
○ TDD
○ Testes Unitários
○ Isolamento
○ Spies, Stubs e Mocks
○ BDD
○ Boas Práticas e Más práticas
Um pouco sobre agilidade
EXTREME
GO HORSE
EXTREME PROGRAMMING
TDD
Test Driven Development
Desenvolvimento orientado a testes
1. Escreva um teste que falhe
2. Escreva o código para esse teste
3. Rode os testes
4. Refatore o código
5. Volte ao 1
Automatizados
Behaviour Driven Development
BDD
TDD
suite('Contador', () => {
test('tick aumenta contador em 1', () => {
let counter = new Counter();
counter.tick();
assert.equal(counter.count, 1);
});
});
BDD
describe('Contador', () => {
it('aumenta o contador em 1 após o tick', () => {
const counter = new Counter();
const count = counter.count;
const expectedCount = count + 1;
counter.tick();
expect(counter.count).to.be.equal(expectedCount);
});
});
Testes unitários e isolamento
E outras ferramentas
Unit Test
Testes unitários
Isolamento
Testes unitários
Spies, stubs e mocks
Testes unitários
Más práticas e Boas Práticas
Boas Práticas
Testes unitários
Organize, atue, e cheque
Boas Práticas
Isso contribui para códigos determinísticos, evitar uma leitura difícil
dos testes unitários e evitar a escrita de testes unitários
desnecessários.
describe, it
Refatore
describe('Contador', () => {
it('aumenta o contador em 1 após o tick', () => {
const counter = new Counter();
let expectedCount = 1;
counter.tick();
expect(counter.count).to.be.equal(expectedCount);
expectedCount = 2;
counter.tick();
expect(counter.count).to.be.equal(expectedCount);
});
});
Organize, atue, e cheque
Boas Práticas
Descreva a unidade e o it o que está sendo testado.
describe, it
Refatore
Organize, atue, e cheque
Boas Práticas
SEMPRE!
describe, it
Refatore
Más Práticas
Testes unitários
Teste Integrado
Falta de clareza
Más Práticas
Dependência de execução
describe('teste', () => {
it('testa functionName',() => {
});
});
Lógica
Code Review
Teste Integrado
Falta de clareza
Más Práticas
Dependência de execução
Deixa eu testar aquele acesso ao banco
de dados…
Ou esse teste da camada de view com
com o meu serviçoLógica
Code Review
Teste Integrado
Falta de clareza
Más Práticas
Dependência de execução Primeiro deixa testar se somou 1 agora
pego o resultado e vejo se soma com 2...
Lógica
Code Review
Teste Integrado
Falta de clareza
Más Práticas
Dependência de execução É só os arquivos de testes, não preciso
me preocupar
Lógica
Code Review
Teste Integrado
Falta de clareza
Más Práticas
Dependência de execução
items.forEach(item => it(`testa ${item}, () =>
{
const result = item;
expect(result).to.be.equal(true);
}));
Lógica
Code Review
Dúvidas
Quer fazer parte do nosso time de times?
Temos vagas!
NÓS MOVEMOS O MUNDO.
Centro
Av. Presidente Wilson, 231 
29º andar
(21) 2240-2030
Cidade Monções
Av. Nações Unidas, 11.541 
3º andar
(11) 4119-0449
Savassi
Av. Getúlio Vargas, 671 
Sala 800 - 8º andar
(31) 3360-8900
Ilha do Leite
Rua Sen. José Henrique, 199
2º andar
(81) 3018-6299
WWW.CONCRETE.COM.BR

More Related Content

What's hot

Palestra Testes Unidade Com JUnit
Palestra Testes Unidade Com JUnitPalestra Testes Unidade Com JUnit
Palestra Testes Unidade Com JUnitRobinson Castilho
 
Testes de Unidade com JUnit
Testes de Unidade com JUnitTestes de Unidade com JUnit
Testes de Unidade com JUnitelliando dias
 
TDC2018SP | Trilha Python - Nao e magia, e tecnologia
TDC2018SP | Trilha Python - Nao e magia, e tecnologiaTDC2018SP | Trilha Python - Nao e magia, e tecnologia
TDC2018SP | Trilha Python - Nao e magia, e tecnologiatdc-globalcode
 
Padrões para Desenvolvimento de Software Guiado por Testes
Padrões para Desenvolvimento de Software Guiado por TestesPadrões para Desenvolvimento de Software Guiado por Testes
Padrões para Desenvolvimento de Software Guiado por TestesEverton Rodrigues
 

What's hot (8)

Junit 4.0
Junit 4.0Junit 4.0
Junit 4.0
 
Palestra Testes Unidade Com JUnit
Palestra Testes Unidade Com JUnitPalestra Testes Unidade Com JUnit
Palestra Testes Unidade Com JUnit
 
Testes de Unidade com JUnit
Testes de Unidade com JUnitTestes de Unidade com JUnit
Testes de Unidade com JUnit
 
Junit
JunitJunit
Junit
 
TDC2018SP | Trilha Python - Nao e magia, e tecnologia
TDC2018SP | Trilha Python - Nao e magia, e tecnologiaTDC2018SP | Trilha Python - Nao e magia, e tecnologia
TDC2018SP | Trilha Python - Nao e magia, e tecnologia
 
Padrões para Desenvolvimento de Software Guiado por Testes
Padrões para Desenvolvimento de Software Guiado por TestesPadrões para Desenvolvimento de Software Guiado por Testes
Padrões para Desenvolvimento de Software Guiado por Testes
 
Minicurso de TDD
Minicurso de TDDMinicurso de TDD
Minicurso de TDD
 
Palestra Testes De Unidade Com JUnit
Palestra Testes De Unidade Com JUnitPalestra Testes De Unidade Com JUnit
Palestra Testes De Unidade Com JUnit
 

Similar to O que você precisa saber sobre testes unitários

Test-Driven Development with PHP
Test-Driven Development with PHPTest-Driven Development with PHP
Test-Driven Development with PHPCezar Souza
 
Qualidade em Testes de Software
Qualidade em Testes de SoftwareQualidade em Testes de Software
Qualidade em Testes de SoftwareGDGFoz
 
Programação Orientada a Testes
Programação Orientada a TestesProgramação Orientada a Testes
Programação Orientada a TestesGregorio Melo
 
Tdd em django sem desculpas versao final
Tdd em django sem desculpas versao finalTdd em django sem desculpas versao final
Tdd em django sem desculpas versao finalAdriano Petrich
 
Android: testes automatizados e TDD
Android: testes automatizados e TDDAndroid: testes automatizados e TDD
Android: testes automatizados e TDDDextra
 
TDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no AndroidTDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no Androidtdc-globalcode
 
TDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no AndroidTDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no Androidtdc-globalcode
 
TDD em django sem desculpas versao fisl
TDD em django sem desculpas versao fislTDD em django sem desculpas versao fisl
TDD em django sem desculpas versao fislAdriano Petrich
 
Testes, engenharia de Software, teste de Software
Testes, engenharia de Software, teste de SoftwareTestes, engenharia de Software, teste de Software
Testes, engenharia de Software, teste de SoftwareSilas Gonçalves
 
Testes Automatizados de Software
Testes Automatizados de SoftwareTestes Automatizados de Software
Testes Automatizados de SoftwareMaurício Aniche
 
Teste de Software - Especialização Univem
Teste de Software - Especialização UnivemTeste de Software - Especialização Univem
Teste de Software - Especialização UnivemAndré Abe Vicente
 
Paletra sobre TDD, ocorrida no #DevDojo
Paletra sobre TDD, ocorrida no #DevDojoPaletra sobre TDD, ocorrida no #DevDojo
Paletra sobre TDD, ocorrida no #DevDojoflavio1110
 

Similar to O que você precisa saber sobre testes unitários (20)

1° Madrugada de Testes
1° Madrugada de Testes1° Madrugada de Testes
1° Madrugada de Testes
 
Test-Driven Development with PHP
Test-Driven Development with PHPTest-Driven Development with PHP
Test-Driven Development with PHP
 
TDD com Python (Completo)
TDD com Python (Completo)TDD com Python (Completo)
TDD com Python (Completo)
 
Testes de software de A a Z
Testes de software de A a ZTestes de software de A a Z
Testes de software de A a Z
 
Qualidade em Testes de Software
Qualidade em Testes de SoftwareQualidade em Testes de Software
Qualidade em Testes de Software
 
Programação Orientada a Testes
Programação Orientada a TestesProgramação Orientada a Testes
Programação Orientada a Testes
 
Tdd em django sem desculpas versao final
Tdd em django sem desculpas versao finalTdd em django sem desculpas versao final
Tdd em django sem desculpas versao final
 
Android: testes automatizados e TDD
Android: testes automatizados e TDDAndroid: testes automatizados e TDD
Android: testes automatizados e TDD
 
TDD do seu jeito
TDD do seu jeitoTDD do seu jeito
TDD do seu jeito
 
TDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no AndroidTDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no Android
 
TDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no AndroidTDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no Android
 
Unit test & TDD
Unit test & TDDUnit test & TDD
Unit test & TDD
 
TDD em django sem desculpas versao fisl
TDD em django sem desculpas versao fislTDD em django sem desculpas versao fisl
TDD em django sem desculpas versao fisl
 
Unit Testing
Unit TestingUnit Testing
Unit Testing
 
JUnit Sample
JUnit SampleJUnit Sample
JUnit Sample
 
Testes, engenharia de Software, teste de Software
Testes, engenharia de Software, teste de SoftwareTestes, engenharia de Software, teste de Software
Testes, engenharia de Software, teste de Software
 
Testes Automatizados de Software
Testes Automatizados de SoftwareTestes Automatizados de Software
Testes Automatizados de Software
 
Teste de Software - Especialização Univem
Teste de Software - Especialização UnivemTeste de Software - Especialização Univem
Teste de Software - Especialização Univem
 
Paletra sobre TDD, ocorrida no #DevDojo
Paletra sobre TDD, ocorrida no #DevDojoPaletra sobre TDD, ocorrida no #DevDojo
Paletra sobre TDD, ocorrida no #DevDojo
 
Clean Code
Clean CodeClean Code
Clean Code
 

O que você precisa saber sobre testes unitários