BDD com JBehave Por Ismael Soares
Relembrando...
Dificuldades ao iniciar com TDD... Por onde começar? O que testar? O teste tem que começar falhando?
Cansado de ver problemas como estes, Dan North... Idealiza BDD
O que é BDD?
BDD   (Desenvolvimento Orientado por Comportamento) Uma técnica de desenvolvimento ágil que visa integrar regras de negócios com linguagem de programação.
Existem muitas ferramentas Para fazer o trabalho duro... JBehave
JBehave
Por que usar JBehave
Facilitar a comunicação entre todos os envolvidos
Verificar o comportamento através de integração contínua
Como JBehave funciona
Modelo do Arquivo Texto
Exemplo Estória do Usuário
No Arquivo Texto... Story: Cliente faz saque de dinheiro Como um cliente, eu gostaria de sacar dinheiro em caixa eletrônico, para que eu não tenha que esperar numa fila de banco Scenario : Cliente especial com saldo negativo Given  um cliente especial com saldo atual de -200 reais When  for solicitado um saque no valor de 100 reais  Then  deve efetuar o saque e atualizar o saldo da conta para -300 reais Scenario : Cliente comum com saldo negativo Given  um cliente comum com saldo atual de -300 reais When  solicitar um saque de 200 reais  Then  não deve efetuar o saque e deve retornar a mensagem Saldo Insuficiente Nome: caixa_eletronico_test (sem extensão e as palavras por “_”)
Esquema JBehave
Esquema JBehave
Maven < dependency > < groupId > org.jbehave </ groupId > < artifactId > jbehave-maven-plugin </ artifactId > < version > 2.3.1 </ version > </ dependency >
A Classe Principal
Steps
Steps
A Classe Principal
Resultado
Vantagens Totalmente desenvolvido em Java, o que facilita a integração com outros projetos da mesma plataforma; Os usuários podem especificar e executar as Estórias de usuário baseadas em arquivo texto; Anotações ( @annotations ) que conectam os textos da estória do usuário com os parâmetros dos métodos; Além do console, os resultados dos testes podem ser vistos ainda nos formatos: HTML, TXT e XML. Mas isto requer uma configuração específica que pode ser encontrada na documentação do framework; Controle de todas as etapas (métodos) dos cenários pendentes para que não fiquem sem ser implementadas; Localização das Estórias através de palavras chaves, podendo assim, serem escritas em qualquer idioma (exceto Given, When e Then); Integração com as principais IDEs, entre elas: Eclipse e NetBeans; Execução com ANT e Maven.
Links e Referências http://jbehave.org/ Site oficial do framework JBehave. http://codificando.com/2009/04/jbehave-brasil-bdd-em-java-no-nosso-idioma/ Macedo, Emerson.  Criando extensão do JBehave. 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
Obrigado!

BDD JBehave

  • 1.
    BDD com JBehavePor Ismael Soares
  • 2.
  • 3.
    Dificuldades ao iniciarcom TDD... Por onde começar? O que testar? O teste tem que começar falhando?
  • 4.
    Cansado de verproblemas como estes, Dan North... Idealiza BDD
  • 5.
  • 6.
    BDD (Desenvolvimento Orientado por Comportamento) Uma técnica de desenvolvimento ágil que visa integrar regras de negócios com linguagem de programação.
  • 7.
    Existem muitas ferramentasPara fazer o trabalho duro... JBehave
  • 8.
  • 9.
    Por que usarJBehave
  • 10.
    Facilitar a comunicaçãoentre todos os envolvidos
  • 11.
    Verificar o comportamentoatravés de integração contínua
  • 12.
  • 13.
  • 14.
  • 15.
    No Arquivo Texto...Story: Cliente faz saque de dinheiro Como um cliente, eu gostaria de sacar dinheiro em caixa eletrônico, para que eu não tenha que esperar numa fila de banco Scenario : Cliente especial com saldo negativo Given um cliente especial com saldo atual de -200 reais When for solicitado um saque no valor de 100 reais Then deve efetuar o saque e atualizar o saldo da conta para -300 reais Scenario : Cliente comum com saldo negativo Given um cliente comum com saldo atual de -300 reais When solicitar um saque de 200 reais Then não deve efetuar o saque e deve retornar a mensagem Saldo Insuficiente Nome: caixa_eletronico_test (sem extensão e as palavras por “_”)
  • 16.
  • 17.
  • 18.
    Maven < dependency> < groupId > org.jbehave </ groupId > < artifactId > jbehave-maven-plugin </ artifactId > < version > 2.3.1 </ version > </ dependency >
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
    Vantagens Totalmente desenvolvidoem Java, o que facilita a integração com outros projetos da mesma plataforma; Os usuários podem especificar e executar as Estórias de usuário baseadas em arquivo texto; Anotações ( @annotations ) que conectam os textos da estória do usuário com os parâmetros dos métodos; Além do console, os resultados dos testes podem ser vistos ainda nos formatos: HTML, TXT e XML. Mas isto requer uma configuração específica que pode ser encontrada na documentação do framework; Controle de todas as etapas (métodos) dos cenários pendentes para que não fiquem sem ser implementadas; Localização das Estórias através de palavras chaves, podendo assim, serem escritas em qualquer idioma (exceto Given, When e Then); Integração com as principais IDEs, entre elas: Eclipse e NetBeans; Execução com ANT e Maven.
  • 25.
    Links e Referênciashttp://jbehave.org/ Site oficial do framework JBehave. http://codificando.com/2009/04/jbehave-brasil-bdd-em-java-no-nosso-idioma/ Macedo, Emerson. Criando extensão do JBehave. 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
  • 26.

Notas do Editor

  • #8 Cerca de 10 para Java
  • #10 A filosofia que levou a criação do JBehave é a mesma que originou o desenvolvimento orientado por comportamento.
  • #14 A linguagem de negócio usada em BDD é extraída das estórias fornecidas pelo cliente durante o levantamento dos requisitos. Quando Dan North apresentou este conceito em 2003, ele sugeriu um padrão para escrita destes arquivos. Este é apenas um modelo, ou seja, não é obrigatório. Entretanto, Dan North denota que é extremamente importante a equipe seguir um padrão para facilitar a comunicação entre os envolvidos no projeto.
  • #25 O fato de JBehave ter sido o primeiro framework para criação de testes orientado a comportamento, o fez ser o mais popular dentre os demais do mesmo gênero. Entretanto, isto também se deve às seguintes vantagens que ele apresenta: