bdd com easyb

Post on 11-Jun-2015

2.211 Views

Category:

Technology

2 Downloads

Preview:

Click to see full reader

DESCRIPTION

Conheça uma das ferramentas de BDD mais utilizada pela comunidade Java. Easyb recebeu este posto pela sua simplicidade e objetividade na escrita de testes.

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