SlideShare uma empresa Scribd logo
1 de 18
BDD com EasyB Por Ismael Soares
http://www.easyb.org/
Simplesmente descomplicado
Fácil de aprender Características Utiliza linguaguem dinâmica (Groovy) Possui dois formatos para escrita de código (Stories e Specifications) Relatórios HTML usando Maven Plugin para o Eclipse
Maven < dependency > < groupId > org.easyb </ groupId > < artifactId > easyb-maven-plugin </ artifactId > < version > 0.9.7-1 </ version > </ dependency >
Triste notícia….
Mas nem tudo está perdido….
Plugin para Eclipse
Exemplo com Estória do Usuário
Definição do formato
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],CaixaEletronicoTest.story
//Segundo Cen á rio 26.  scenario   &quot;cliente comum com saldo negativo&quot; ,{ 27.  given   &quot;um cliente comum com saldo atual de -300 reais&quot; ,{ 28.  cliente.saldoAtual = -300; 29.  cliente.clienteComum(); 30.  } 31.  when   &quot;for solicitado um saque no valor de 200 reais&quot; , { 32.  try { 33.  cliente.sacar(200) 34.  } catch  (Exception e) { 35.  msg = e.message 36.  } 37.  } 38.  then   &quot;não deve efetuar o saque&quot; , { 39.  saqueEfetuado.shouldBe  false } 41.  and   &quot;deve retornar a mensagem Saldo Insuficiente&quot; ,{ 42.  msg.shouldBe  'Saldo Insuficiente' 43.  } 43.  } CaixaEletronicoTest.story
1.  description   &quot;Testando uma pilha&quot; 2.  before   &quot;inicializa a fila para cada especifica ç ão&quot; , { 3. pilha =  new  Stack<Integer>() 4.  } 5.  it   &quot;deve possuir apenas 1 elemento&quot; , { 6.  pilha. push (2) 7.  pilha. size ().shouldBe(1) 8.  } 9.  it   &quot;deve retornar uma exception quando for retirado um elemento da pilha vazia&quot; , { 10. ensureThrows (Exception. class ) { 11. pilha. pop () } 13. } 14. it   &quot;deve empilhar e desempilhar os elementos na mesma ordem&quot; , { 15.   [1..5]. each  {val -> 16.   pilha. push (val) 17.   } 18.   [1..5]. each  {val -> 19.   pilha. pop ().shouldBe(val) 20.   } 21  } CaixaEletronicoTest.specification
Executando com Maven
Relatório HTML
Plugin do Maven para gerar relatórios < build > < plugins > < plugin >   < groupId > org.easyb </ groupId >   < artifactId > maven-easyb-plugin </ artifactId >   < version > 0.9.7-1 </ version >   < executions >   < execution >   < goals >   < goal > test </ goal >   </ goals >   </ execution >   </ executions >   < configuration >   < storyType > html </ storyType >   < storyReport > ${project.build.directory}/ easyb /stories.html </ storyReport >   </ configuration >   </ plugin >   </ plugins > </ build >
Links e Referências http://www.easyb.org/ Site oficial do framework EasyB. http://www.easyb.org/running.html#eclipse Plugin do EasyB para a IDE Eclipse. Chelimsky,David, Aslak Hellesøy, Dave Astels, Zach Dennis, Bryan Helmkamp e Dan North. The RSpec Book : Behaviour Driven Development with RSpec, Cucumber, and Friends . Edited by Jacquelyn Carter. ISBN: 978.1.93435.637-1 http://www.reginaldo.cnt.br/leitura/curiosidades/fotos-curiosas/gato_assustado.gif
Obrigado!

Mais conteúdo relacionado

Destaque

Equipes auto organizaveis
Equipes auto organizaveisEquipes auto organizaveis
Equipes auto organizaveisIsmael
 
Os testes ainda vao salvar sua pele
Os testes ainda vao salvar sua peleOs testes ainda vao salvar sua pele
Os testes ainda vao salvar sua peleIsmael
 
Business Intelligence
Business IntelligenceBusiness Intelligence
Business IntelligenceIsmael
 
Refactoring Databases - parte 1
Refactoring Databases - parte 1Refactoring Databases - parte 1
Refactoring Databases - parte 1Ismael
 
Habilidade sensorial em Equipes Auto-Organizáveis
Habilidade sensorial em Equipes Auto-OrganizáveisHabilidade sensorial em Equipes Auto-Organizáveis
Habilidade sensorial em Equipes Auto-OrganizáveisIsmael
 
Conceitos Historias do Usuario
Conceitos Historias do UsuarioConceitos Historias do Usuario
Conceitos Historias do UsuarioIsmael
 
Java one
Java oneJava one
Java oneIsmael
 
Padrões de deploy para DevOps e Entrega Contínua
Padrões de deploy para DevOps e Entrega ContínuaPadrões de deploy para DevOps e Entrega Contínua
Padrões de deploy para DevOps e Entrega ContínuaDanilo Sato
 
Novidades Groovy 2.0
Novidades Groovy 2.0Novidades Groovy 2.0
Novidades Groovy 2.0Ismael
 
Refactoring Databases
Refactoring DatabasesRefactoring Databases
Refactoring DatabasesIsmael
 
Inove suas retrospectivas
Inove suas retrospectivasInove suas retrospectivas
Inove suas retrospectivasIsmael
 
Refactoring Data base parte 2
Refactoring Data base parte 2Refactoring Data base parte 2
Refactoring Data base parte 2Ismael
 
Product Owner na prática
Product Owner na práticaProduct Owner na prática
Product Owner na práticaPedro Valente
 
Como você testa seu software
Como você testa seu softwareComo você testa seu software
Como você testa seu softwareIsmael
 
Quando a tecnologia se torna um problema
Quando a tecnologia se torna um problemaQuando a tecnologia se torna um problema
Quando a tecnologia se torna um problemaIsmael
 
Clareza nos objetivos
Clareza nos objetivosClareza nos objetivos
Clareza nos objetivosIsmael
 
O que vi na QCon 2012 São Paulo
O que vi na QCon 2012 São PauloO que vi na QCon 2012 São Paulo
O que vi na QCon 2012 São PauloIsmael
 
Testando JavaScript com Spock
Testando JavaScript com SpockTestando JavaScript com Spock
Testando JavaScript com SpockIsmael
 
Introdução ao EasyTest
Introdução ao EasyTestIntrodução ao EasyTest
Introdução ao EasyTestIsmael
 

Destaque (20)

Equipes auto organizaveis
Equipes auto organizaveisEquipes auto organizaveis
Equipes auto organizaveis
 
Os testes ainda vao salvar sua pele
Os testes ainda vao salvar sua peleOs testes ainda vao salvar sua pele
Os testes ainda vao salvar sua pele
 
Business Intelligence
Business IntelligenceBusiness Intelligence
Business Intelligence
 
Refactoring Databases - parte 1
Refactoring Databases - parte 1Refactoring Databases - parte 1
Refactoring Databases - parte 1
 
Habilidade sensorial em Equipes Auto-Organizáveis
Habilidade sensorial em Equipes Auto-OrganizáveisHabilidade sensorial em Equipes Auto-Organizáveis
Habilidade sensorial em Equipes Auto-Organizáveis
 
Conceitos Historias do Usuario
Conceitos Historias do UsuarioConceitos Historias do Usuario
Conceitos Historias do Usuario
 
Java one
Java oneJava one
Java one
 
Padrões de deploy para DevOps e Entrega Contínua
Padrões de deploy para DevOps e Entrega ContínuaPadrões de deploy para DevOps e Entrega Contínua
Padrões de deploy para DevOps e Entrega Contínua
 
Novidades Groovy 2.0
Novidades Groovy 2.0Novidades Groovy 2.0
Novidades Groovy 2.0
 
Refactoring Databases
Refactoring DatabasesRefactoring Databases
Refactoring Databases
 
Svn e processos de controle de código
Svn e processos de controle de códigoSvn e processos de controle de código
Svn e processos de controle de código
 
Inove suas retrospectivas
Inove suas retrospectivasInove suas retrospectivas
Inove suas retrospectivas
 
Refactoring Data base parte 2
Refactoring Data base parte 2Refactoring Data base parte 2
Refactoring Data base parte 2
 
Product Owner na prática
Product Owner na práticaProduct Owner na prática
Product Owner na prática
 
Como você testa seu software
Como você testa seu softwareComo você testa seu software
Como você testa seu software
 
Quando a tecnologia se torna um problema
Quando a tecnologia se torna um problemaQuando a tecnologia se torna um problema
Quando a tecnologia se torna um problema
 
Clareza nos objetivos
Clareza nos objetivosClareza nos objetivos
Clareza nos objetivos
 
O que vi na QCon 2012 São Paulo
O que vi na QCon 2012 São PauloO que vi na QCon 2012 São Paulo
O que vi na QCon 2012 São Paulo
 
Testando JavaScript com Spock
Testando JavaScript com SpockTestando JavaScript com Spock
Testando JavaScript com Spock
 
Introdução ao EasyTest
Introdução ao EasyTestIntrodução ao EasyTest
Introdução ao EasyTest
 

Semelhante a BDD com Easyb

Java mais ágil que nunca no desenvolvimento Web
Java mais ágil que nunca no desenvolvimento WebJava mais ágil que nunca no desenvolvimento Web
Java mais ágil que nunca no desenvolvimento WebBruno Borges
 
Spring + Tapestry Um novo paradigma de desenvolvimento web
Spring + Tapestry Um novo paradigma de desenvolvimento webSpring + Tapestry Um novo paradigma de desenvolvimento web
Spring + Tapestry Um novo paradigma de desenvolvimento webelliando dias
 
Apresentação Java Web Si Ufc Quixadá
Apresentação Java Web Si Ufc QuixadáApresentação Java Web Si Ufc Quixadá
Apresentação Java Web Si Ufc QuixadáZarathon Maia
 
Apps Web em Wicket e Scala no GlassFish Java EE 6
Apps Web em Wicket e Scala no GlassFish Java EE 6Apps Web em Wicket e Scala no GlassFish Java EE 6
Apps Web em Wicket e Scala no GlassFish Java EE 6Bruno Borges
 
Edição de conteúdo web usando Javascript de ponta a ponta
Edição de conteúdo web usando Javascript de ponta a pontaEdição de conteúdo web usando Javascript de ponta a ponta
Edição de conteúdo web usando Javascript de ponta a pontaJorge Walendowsky
 
Spring MVC Framework
Spring MVC FrameworkSpring MVC Framework
Spring MVC Frameworkelliando dias
 
Conhecendo o Struts 2 - Java Tech Day 2007
Conhecendo o Struts 2 - Java Tech Day 2007Conhecendo o Struts 2 - Java Tech Day 2007
Conhecendo o Struts 2 - Java Tech Day 2007Jaime Schettini
 
Melhorando a Experiência do Usuário com JavaScript e jQuery
Melhorando a Experiência do Usuário com JavaScript e jQueryMelhorando a Experiência do Usuário com JavaScript e jQuery
Melhorando a Experiência do Usuário com JavaScript e jQueryHarlley Oliveira
 
Desmistificando o cairngorm
Desmistificando o cairngormDesmistificando o cairngorm
Desmistificando o cairngormEric Cavalcanti
 
Typescript: the Fun Parts (BrazilJS 2017)
Typescript: the Fun Parts (BrazilJS 2017)Typescript: the Fun Parts (BrazilJS 2017)
Typescript: the Fun Parts (BrazilJS 2017)Loiane Groner
 
Produtividade com JavaServer Faces
Produtividade com JavaServer FacesProdutividade com JavaServer Faces
Produtividade com JavaServer FacesEduardo Bregaida
 

Semelhante a BDD com Easyb (20)

Java mais ágil que nunca no desenvolvimento Web
Java mais ágil que nunca no desenvolvimento WebJava mais ágil que nunca no desenvolvimento Web
Java mais ágil que nunca no desenvolvimento Web
 
Facelets
FaceletsFacelets
Facelets
 
Spring + Tapestry Um novo paradigma de desenvolvimento web
Spring + Tapestry Um novo paradigma de desenvolvimento webSpring + Tapestry Um novo paradigma de desenvolvimento web
Spring + Tapestry Um novo paradigma de desenvolvimento web
 
OOP ObjC
OOP ObjCOOP ObjC
OOP ObjC
 
Apresentação Java Web Si Ufc Quixadá
Apresentação Java Web Si Ufc QuixadáApresentação Java Web Si Ufc Quixadá
Apresentação Java Web Si Ufc Quixadá
 
Apps Web em Wicket e Scala no GlassFish Java EE 6
Apps Web em Wicket e Scala no GlassFish Java EE 6Apps Web em Wicket e Scala no GlassFish Java EE 6
Apps Web em Wicket e Scala no GlassFish Java EE 6
 
Tutorial Dwr - Configuração e Uso
Tutorial Dwr - Configuração e UsoTutorial Dwr - Configuração e Uso
Tutorial Dwr - Configuração e Uso
 
JPA - Java Persistence API
JPA - Java Persistence APIJPA - Java Persistence API
JPA - Java Persistence API
 
Edição de conteúdo web usando Javascript de ponta a ponta
Edição de conteúdo web usando Javascript de ponta a pontaEdição de conteúdo web usando Javascript de ponta a ponta
Edição de conteúdo web usando Javascript de ponta a ponta
 
Spring MVC Framework
Spring MVC FrameworkSpring MVC Framework
Spring MVC Framework
 
Conhecendo o Struts 2 - Java Tech Day 2007
Conhecendo o Struts 2 - Java Tech Day 2007Conhecendo o Struts 2 - Java Tech Day 2007
Conhecendo o Struts 2 - Java Tech Day 2007
 
Melhorando a Experiência do Usuário com JavaScript e jQuery
Melhorando a Experiência do Usuário com JavaScript e jQueryMelhorando a Experiência do Usuário com JavaScript e jQuery
Melhorando a Experiência do Usuário com JavaScript e jQuery
 
04_Introducao_JavaScript.pdf
04_Introducao_JavaScript.pdf04_Introducao_JavaScript.pdf
04_Introducao_JavaScript.pdf
 
Spring Capitulo 02
Spring Capitulo 02Spring Capitulo 02
Spring Capitulo 02
 
Wicket 2008
Wicket 2008Wicket 2008
Wicket 2008
 
Desmistificando o cairngorm
Desmistificando o cairngormDesmistificando o cairngorm
Desmistificando o cairngorm
 
Typescript: the Fun Parts (BrazilJS 2017)
Typescript: the Fun Parts (BrazilJS 2017)Typescript: the Fun Parts (BrazilJS 2017)
Typescript: the Fun Parts (BrazilJS 2017)
 
Produtividade com JavaServer Faces
Produtividade com JavaServer FacesProdutividade com JavaServer Faces
Produtividade com JavaServer Faces
 
Ruby On Rails Regis
Ruby On Rails RegisRuby On Rails Regis
Ruby On Rails Regis
 
NHibernate
NHibernateNHibernate
NHibernate
 

Mais de Ismael

TDC 2020 - Trilha de Management 3.0 e Gestão Ágil
TDC 2020 - Trilha de Management 3.0 e Gestão ÁgilTDC 2020 - Trilha de Management 3.0 e Gestão Ágil
TDC 2020 - Trilha de Management 3.0 e Gestão ÁgilIsmael
 
Introducao ao Pensamento Sistemico
Introducao ao Pensamento SistemicoIntroducao ao Pensamento Sistemico
Introducao ao Pensamento SistemicoIsmael
 
Testes de unidade alem do basico
Testes de unidade alem do basicoTestes de unidade alem do basico
Testes de unidade alem do basicoIsmael
 
Bluesoft Culture
Bluesoft CultureBluesoft Culture
Bluesoft CultureIsmael
 
Como dar e receber feedbacks
Como dar e receber feedbacksComo dar e receber feedbacks
Como dar e receber feedbacksIsmael
 
Eficiencia de fluxo
Eficiencia de fluxoEficiencia de fluxo
Eficiencia de fluxoIsmael
 
Como você testa seu software TDC 2017
Como você testa seu software  TDC 2017Como você testa seu software  TDC 2017
Como você testa seu software TDC 2017Ismael
 
Como ter Entregas Frequentes
Como ter Entregas FrequentesComo ter Entregas Frequentes
Como ter Entregas FrequentesIsmael
 
JUnit 5 vs JUnit 4
JUnit 5 vs JUnit 4JUnit 5 vs JUnit 4
JUnit 5 vs JUnit 4Ismael
 
Conceitos por trás do Ágil
Conceitos por trás do ÁgilConceitos por trás do Ágil
Conceitos por trás do ÁgilIsmael
 
Boas Praticas de Testes, Bad Smell e Outros Macetes
Boas Praticas de Testes, Bad Smell e Outros MacetesBoas Praticas de Testes, Bad Smell e Outros Macetes
Boas Praticas de Testes, Bad Smell e Outros MacetesIsmael
 
8 passos para mudança de John Kotter
8 passos para mudança de John Kotter8 passos para mudança de John Kotter
8 passos para mudança de John KotterIsmael
 
Curva da Mudança Kubler-Ross
Curva da Mudança Kubler-RossCurva da Mudança Kubler-Ross
Curva da Mudança Kubler-RossIsmael
 
DevCamp 2016
DevCamp 2016DevCamp 2016
DevCamp 2016Ismael
 
7 Caracteristicas de um bom Lider Agil
7 Caracteristicas de um bom Lider Agil7 Caracteristicas de um bom Lider Agil
7 Caracteristicas de um bom Lider AgilIsmael
 
Law of demeter
Law of demeterLaw of demeter
Law of demeterIsmael
 
Junit Lambda
Junit LambdaJunit Lambda
Junit LambdaIsmael
 
Feedback dos Testes
Feedback dos TestesFeedback dos Testes
Feedback dos TestesIsmael
 
Refactoring Databases - Estrategias
Refactoring Databases - EstrategiasRefactoring Databases - Estrategias
Refactoring Databases - EstrategiasIsmael
 
Truques da mente
Truques da menteTruques da mente
Truques da menteIsmael
 

Mais de Ismael (20)

TDC 2020 - Trilha de Management 3.0 e Gestão Ágil
TDC 2020 - Trilha de Management 3.0 e Gestão ÁgilTDC 2020 - Trilha de Management 3.0 e Gestão Ágil
TDC 2020 - Trilha de Management 3.0 e Gestão Ágil
 
Introducao ao Pensamento Sistemico
Introducao ao Pensamento SistemicoIntroducao ao Pensamento Sistemico
Introducao ao Pensamento Sistemico
 
Testes de unidade alem do basico
Testes de unidade alem do basicoTestes de unidade alem do basico
Testes de unidade alem do basico
 
Bluesoft Culture
Bluesoft CultureBluesoft Culture
Bluesoft Culture
 
Como dar e receber feedbacks
Como dar e receber feedbacksComo dar e receber feedbacks
Como dar e receber feedbacks
 
Eficiencia de fluxo
Eficiencia de fluxoEficiencia de fluxo
Eficiencia de fluxo
 
Como você testa seu software TDC 2017
Como você testa seu software  TDC 2017Como você testa seu software  TDC 2017
Como você testa seu software TDC 2017
 
Como ter Entregas Frequentes
Como ter Entregas FrequentesComo ter Entregas Frequentes
Como ter Entregas Frequentes
 
JUnit 5 vs JUnit 4
JUnit 5 vs JUnit 4JUnit 5 vs JUnit 4
JUnit 5 vs JUnit 4
 
Conceitos por trás do Ágil
Conceitos por trás do ÁgilConceitos por trás do Ágil
Conceitos por trás do Ágil
 
Boas Praticas de Testes, Bad Smell e Outros Macetes
Boas Praticas de Testes, Bad Smell e Outros MacetesBoas Praticas de Testes, Bad Smell e Outros Macetes
Boas Praticas de Testes, Bad Smell e Outros Macetes
 
8 passos para mudança de John Kotter
8 passos para mudança de John Kotter8 passos para mudança de John Kotter
8 passos para mudança de John Kotter
 
Curva da Mudança Kubler-Ross
Curva da Mudança Kubler-RossCurva da Mudança Kubler-Ross
Curva da Mudança Kubler-Ross
 
DevCamp 2016
DevCamp 2016DevCamp 2016
DevCamp 2016
 
7 Caracteristicas de um bom Lider Agil
7 Caracteristicas de um bom Lider Agil7 Caracteristicas de um bom Lider Agil
7 Caracteristicas de um bom Lider Agil
 
Law of demeter
Law of demeterLaw of demeter
Law of demeter
 
Junit Lambda
Junit LambdaJunit Lambda
Junit Lambda
 
Feedback dos Testes
Feedback dos TestesFeedback dos Testes
Feedback dos Testes
 
Refactoring Databases - Estrategias
Refactoring Databases - EstrategiasRefactoring Databases - Estrategias
Refactoring Databases - Estrategias
 
Truques da mente
Truques da menteTruques da mente
Truques da mente
 

BDD com Easyb

  • 1. BDD com EasyB Por Ismael Soares
  • 4. Fácil de aprender Características Utiliza linguaguem dinâmica (Groovy) Possui dois formatos para escrita de código (Stories e Specifications) Relatórios HTML usando Maven Plugin para o Eclipse
  • 5. Maven < dependency > < groupId > org.easyb </ groupId > < artifactId > easyb-maven-plugin </ artifactId > < version > 0.9.7-1 </ version > </ dependency >
  • 7. Mas nem tudo está perdido….
  • 9. Exemplo com Estória do Usuário
  • 11.
  • 12. //Segundo Cen á rio 26. scenario &quot;cliente comum com saldo negativo&quot; ,{ 27. given &quot;um cliente comum com saldo atual de -300 reais&quot; ,{ 28. cliente.saldoAtual = -300; 29. cliente.clienteComum(); 30. } 31. when &quot;for solicitado um saque no valor de 200 reais&quot; , { 32. try { 33. cliente.sacar(200) 34. } catch (Exception e) { 35. msg = e.message 36. } 37. } 38. then &quot;não deve efetuar o saque&quot; , { 39. saqueEfetuado.shouldBe false } 41. and &quot;deve retornar a mensagem Saldo Insuficiente&quot; ,{ 42. msg.shouldBe 'Saldo Insuficiente' 43. } 43. } CaixaEletronicoTest.story
  • 13. 1. description &quot;Testando uma pilha&quot; 2. before &quot;inicializa a fila para cada especifica ç ão&quot; , { 3. pilha = new Stack<Integer>() 4. } 5. it &quot;deve possuir apenas 1 elemento&quot; , { 6. pilha. push (2) 7. pilha. size ().shouldBe(1) 8. } 9. it &quot;deve retornar uma exception quando for retirado um elemento da pilha vazia&quot; , { 10. ensureThrows (Exception. class ) { 11. pilha. pop () } 13. } 14. it &quot;deve empilhar e desempilhar os elementos na mesma ordem&quot; , { 15. [1..5]. each {val -> 16. pilha. push (val) 17. } 18. [1..5]. each {val -> 19. pilha. pop ().shouldBe(val) 20. } 21 } CaixaEletronicoTest.specification
  • 16. Plugin do Maven para gerar relatórios < build > < plugins > < plugin > < groupId > org.easyb </ groupId > < artifactId > maven-easyb-plugin </ artifactId > < version > 0.9.7-1 </ version > < executions > < execution > < goals > < goal > test </ goal > </ goals > </ execution > </ executions > < configuration > < storyType > html </ storyType > < storyReport > ${project.build.directory}/ easyb /stories.html </ storyReport > </ configuration > </ plugin > </ plugins > </ build >
  • 17. Links e Referências http://www.easyb.org/ Site oficial do framework EasyB. http://www.easyb.org/running.html#eclipse Plugin do EasyB para a IDE Eclipse. Chelimsky,David, Aslak Hellesøy, Dave Astels, Zach Dennis, Bryan Helmkamp e Dan North. The RSpec Book : Behaviour Driven Development with RSpec, Cucumber, and Friends . Edited by Jacquelyn Carter. ISBN: 978.1.93435.637-1 http://www.reginaldo.cnt.br/leitura/curiosidades/fotos-curiosas/gato_assustado.gif