bdd com easyb
Post on 11-Jun-2015
2.211 Views
Preview:
DESCRIPTION
TRANSCRIPT
BDD com EasyBPor Ismael Soares
http://www.easyb.org/http://www.easyb.org/
Simplesmente descomplicadoSimplesmente descomplicado
Fácil de aprenderFácil de aprender
Características
Utiliza linguaguem dinâmica (Groovy)Utiliza linguaguem dinâmica (Groovy)
Possui dois formatos para escrita de código (Stories e Possui dois formatos para escrita de código (Stories e
Specifications)Specifications)
Relatórios HTML usando MavenRelatórios HTML usando Maven
Plugin para o EclipsePlugin para o Eclipse
MavenMaven
<dependency> <groupId>org.easyb</groupId> <artifactId>easyb-maven-plugin</artifactId> <version>0.9.7-1</version></dependency>
Triste notícia….Triste notícia….
Mas nem tudo está perdido….Mas nem tudo está perdido….
Plugin para EclipsePlugin para Eclipse
Exemplo com Estória do UsuárioExemplo com Estória do Usuário
Definição do formatoDefinição do formato
//Descrição do teste (opcional) description "Cliente faz saque "
//Narrativa da estória (opcional)2. narrative 'Saque de Cliente', {3. as_a 'cliente'4. i_want 'de sacar dinheiro em caixa eletrônico'5. so_that 'eu não tenha que esperar numa fila de banco'6. }
//Método que será executado antes de cada cenário //Instancia o cliente e cria a variável que irá armazenar o retorno do saque7. before_each "",{8. given "um cliente",{9. cliente = new Cliente()10. saqueEfetuado = false11. }12.}
//Primeiro Cenário13. scenario "cliente especial com saldo negativo",{
14. given "um cliente especial com saldo atual de -200 reais",{15. cliente.saldoAtual = -200;16. cliente.clienteEspecial();17. }
18. when "for solicitado um saque no valor de 100 reais", {19. saqueEfetuado = cliente.sacar(100);20. }
21. then "deve efetuar o saque e atualizar o saldo da conta para -300 reais", {22. saqueEfetuado.shouldBe true23. (cliente.saldoAtual == -300).shouldBe true24. }
25. }
CaixaEletronicoTest.storyCaixaEletronicoTest.story
//Segundo Cenário26. scenario "cliente comum com saldo negativo",{27. given "um cliente comum com saldo atual de -300 reais",{28. cliente.saldoAtual = -300;29. cliente.clienteComum();30. }
31. when "for solicitado um saque no valor de 200 reais", {32. try{33. cliente.sacar(200)34. }catch (Exception e) {35. msg = e.message36. }37. }
38. then "não deve efetuar o saque", {39. saqueEfetuado.shouldBe false
}
41. and "deve retornar a mensagem Saldo Insuficiente",{42. msg.shouldBe 'Saldo Insuficiente'43. }43. }
CaixaEletronicoTest.storyCaixaEletronicoTest.story
1. description "Testando uma pilha"2.
before "inicializa a fila para cada especificação", {3. pilha = new Stack<Integer>()4. }
5. it "deve possuir apenas 1 elemento", {6. pilha.push(2)7. pilha.size().shouldBe(1)8. }
9. it "deve retornar uma exception quando for retirado um elemento da pilha vazia", {10. ensureThrows(Exception.class) {11. pilha.pop()
}
13.}
14.it "deve empilhar e desempilhar os elementos na mesma ordem", {15. [1..5].each {val ->16. pilha.push(val)17. }
18. [1..5].each {val ->19. pilha.pop().shouldBe(val)20. }21 }
CaixaEletronicoTest.specificationCaixaEletronicoTest.specification
Executando com MavenExecutando com Maven
Relatório HTMLRelatório HTML
Plugin do Maven para gerar relatóriosPlugin 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#eclipsePlugin 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!Obrigado!
top related