SlideShare une entreprise Scribd logo
1  sur  26
Test Driven Development ,[object Object]
Roadmap ,[object Object]
TDD:  Red  –  Green  –  Refactor
Testes de Unidade  x Testes de Integração
Ports and Adapters Pattern  ,[object Object],[object Object]
Coverage Tests
Logging Tests
Autenticação num Service Provider de Terceiros ,[object Object],POST http://isp-authenticator.dev.globoi.com:8280/ws/rest/autenticacao XML Resquest Autenticação: <usuarioAutenticado>  <glbId>303a6a6f616f646576406d61696c</glbId>  <login>fulano</login>  <senha>123456</senha> <ip>127.0.0.1</ip> </usuarioAutenticado> XML Response Autenticação <usuarioAutenticado>    <emailPrincipal>fab1@spam.la</emailPrincipal>  <glbId>12257993f74d2b1f</glbId>  <login>fab1@spam.la</login>  <status>AUTENTICADO</status>  <statusUsuario>ATIVO</statusUsuario>  <tipoUsuario>NAO_ASSINANTE</tipoUsuario>  <usuarioID>21588993</usuarioID> </usuarioAutenticado>
Por onde começar? ,[object Object]
Queremos uma classe que realize autenticação (um Authenticator)
O ponto de partida será AuthenticatorTests
Qual o foco do teste? O nome do teste expressa a intenção? ,[object Object]
@Test
public void shouldAuthenticateWhenCredentialsAreValid() {
}
Exercitando o teste ,[object Object]
@Test
public void shouldAuthenticateWhenCredentialsAreValid() {  ,[object Object],[object Object]
Setup e Assertions ,[object Object]
private final Authenticator authenticator = new Authenticator();
private final String validUsername = “valid@userna.me”;
private final String validUsername = “va1idpassw0rd”;
@Test
public void shouldAuthenticateWhenCredentialsAreValid() {  ,[object Object]
assertThat(“authentication response”, response, is(notNullValue()));
assertThat(“authentication response”, response.isAuthenticated(), is(true)); ,[object Object]

Contenu connexe

Tendances

Tendances (18)

Junit
JunitJunit
Junit
 
Java 12
Java 12Java 12
Java 12
 
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
 
Demoiselle Behave - Parte 1
Demoiselle Behave - Parte 1Demoiselle Behave - Parte 1
Demoiselle Behave - Parte 1
 
TDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no AndroidTDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no Android
 
Palestra Testes Unidade Com JUnit
Palestra Testes Unidade Com JUnitPalestra Testes Unidade Com JUnit
Palestra Testes Unidade Com JUnit
 
Android DevConference - Refactoring for RxJava
Android DevConference - Refactoring for RxJavaAndroid DevConference - Refactoring for RxJava
Android DevConference - Refactoring for RxJava
 
Android: testes automatizados e TDD
Android: testes automatizados e TDDAndroid: testes automatizados e TDD
Android: testes automatizados e TDD
 
Testes: Por onde Começar?
Testes: Por onde Começar?Testes: Por onde Começar?
Testes: Por onde Começar?
 
Demoiselle Behave - Visão Geral
Demoiselle Behave - Visão GeralDemoiselle Behave - Visão Geral
Demoiselle Behave - Visão Geral
 
Qualidade no desenvolvimento de software com PHPUnit
Qualidade no desenvolvimento de software com PHPUnitQualidade no desenvolvimento de software com PHPUnit
Qualidade no desenvolvimento de software com PHPUnit
 
Demoiselle Behave - Parte 3
Demoiselle Behave - Parte 3Demoiselle Behave - Parte 3
Demoiselle Behave - Parte 3
 
Ferramentas testes2003
Ferramentas testes2003Ferramentas testes2003
Ferramentas testes2003
 
Vraptor
VraptorVraptor
Vraptor
 
Programação Orientada por Objectos - Aula 5
Programação Orientada por Objectos - Aula 5Programação Orientada por Objectos - Aula 5
Programação Orientada por Objectos - Aula 5
 
Demoiselle Behave - Parte 4
Demoiselle Behave - Parte 4Demoiselle Behave - Parte 4
Demoiselle Behave - Parte 4
 
Plataforma de compiladores .NET, Visual Studio 2015, C# 6 e futuro C# 7
Plataforma de compiladores .NET,Visual Studio 2015, C# 6 e futuro C# 7Plataforma de compiladores .NET,Visual Studio 2015, C# 6 e futuro C# 7
Plataforma de compiladores .NET, Visual Studio 2015, C# 6 e futuro C# 7
 
Indo além com Automação de Testes de Apps Android
Indo além com Automação de Testes de Apps AndroidIndo além com Automação de Testes de Apps Android
Indo além com Automação de Testes de Apps Android
 

En vedette

Art History TDH Final Presentation
Art History TDH Final PresentationArt History TDH Final Presentation
Art History TDH Final Presentation
Joseph Knox
 
Is this how you hate unit testing?
Is this how you hate unit testing?Is this how you hate unit testing?
Is this how you hate unit testing?
Steven Mak
 

En vedette (9)

Complexidade Ciclomatica
Complexidade CiclomaticaComplexidade Ciclomatica
Complexidade Ciclomatica
 
Como trabalhar com código legado
Como trabalhar com código legadoComo trabalhar com código legado
Como trabalhar com código legado
 
Slides - O que é Legado? - QCon Rio
Slides - O que é Legado? - QCon RioSlides - O que é Legado? - QCon Rio
Slides - O que é Legado? - QCon Rio
 
Art History TDH Final Presentation
Art History TDH Final PresentationArt History TDH Final Presentation
Art History TDH Final Presentation
 
Truck Factor
Truck FactorTruck Factor
Truck Factor
 
[QConSP] Estrangulando o Legado na SoundCloud
[QConSP] Estrangulando o Legado na SoundCloud[QConSP] Estrangulando o Legado na SoundCloud
[QConSP] Estrangulando o Legado na SoundCloud
 
Codigo legado fisl
Codigo legado fislCodigo legado fisl
Codigo legado fisl
 
Is this how you hate unit testing?
Is this how you hate unit testing?Is this how you hate unit testing?
Is this how you hate unit testing?
 
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job? Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
 

Similaire à TDD - Algumas lições aprendidas com o livro GOOS

AspectJ — Programação orientada a aspectos em Java
AspectJ — Programação orientada a aspectos em JavaAspectJ — Programação orientada a aspectos em Java
AspectJ — Programação orientada a aspectos em Java
elliando dias
 

Similaire à TDD - Algumas lições aprendidas com o livro GOOS (20)

TDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no AndroidTDC2016POA | Trilha Android - Testes no Android
TDC2016POA | Trilha Android - Testes no Android
 
Automação e virtualização de serviços
Automação e virtualização de serviçosAutomação e virtualização de serviços
Automação e virtualização de serviços
 
Wicket 2008
Wicket 2008Wicket 2008
Wicket 2008
 
Teste unitário
Teste unitárioTeste unitário
Teste unitário
 
Qualidade no desenvolvimento de software com PHPUnit
Qualidade no desenvolvimento de software com PHPUnitQualidade no desenvolvimento de software com PHPUnit
Qualidade no desenvolvimento de software com PHPUnit
 
Ganhando tempo com casos de testes
Ganhando tempo com casos de testesGanhando tempo com casos de testes
Ganhando tempo com casos de testes
 
TDD com Python (Completo)
TDD com Python (Completo)TDD com Python (Completo)
TDD com Python (Completo)
 
Todas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágilTodas as abordagens de testes dentro do ágil
Todas as abordagens de testes dentro do ágil
 
Testes de regressão automatizados
Testes de regressão automatizadosTestes de regressão automatizados
Testes de regressão automatizados
 
Play Framework - FLISOL
Play Framework - FLISOLPlay Framework - FLISOL
Play Framework - FLISOL
 
Como escrever bons testes! - Dex transforming days
Como escrever bons testes! - Dex transforming days Como escrever bons testes! - Dex transforming days
Como escrever bons testes! - Dex transforming days
 
Teste de Integracao com DbUnit e JStryker
Teste de Integracao com DbUnit e JStrykerTeste de Integracao com DbUnit e JStryker
Teste de Integracao com DbUnit e JStryker
 
Android DevConference - Indo além com automação de testes de apps Android
Android DevConference - Indo além com automação de testes de apps AndroidAndroid DevConference - Indo além com automação de testes de apps Android
Android DevConference - Indo além com automação de testes de apps Android
 
03 - Session, Viewstate e Controles de Validação
03 - Session, Viewstate e Controles de Validação03 - Session, Viewstate e Controles de Validação
03 - Session, Viewstate e Controles de Validação
 
Testes integrados automatizados
Testes integrados automatizadosTestes integrados automatizados
Testes integrados automatizados
 
API Apontador
API ApontadorAPI Apontador
API Apontador
 
[TDC2015] De unitário a aceitação: Automação de testes com Codeception
[TDC2015] De unitário a aceitação: Automação de testes com Codeception[TDC2015] De unitário a aceitação: Automação de testes com Codeception
[TDC2015] De unitário a aceitação: Automação de testes com Codeception
 
AspectJ — Programação orientada a aspectos em Java
AspectJ — Programação orientada a aspectos em JavaAspectJ — Programação orientada a aspectos em Java
AspectJ — Programação orientada a aspectos em Java
 
Httpunit - Teste de interface Web com HttpUnit
Httpunit - Teste de interface Web com HttpUnitHttpunit - Teste de interface Web com HttpUnit
Httpunit - Teste de interface Web com HttpUnit
 
Programação Defensiva
Programação DefensivaProgramação Defensiva
Programação Defensiva
 

Dernier

Dernier (6)

ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 

TDD - Algumas lições aprendidas com o livro GOOS