Slide 1

Slide 1 text

Criando testes BDD-style com Ginkgo

Slide 2

Slide 2 text

Carol Caires Igor L. Halfeld

Slide 3

Slide 3 text

github.com/onsi/ginkgo

Slide 4

Slide 4 text

Mas… o que é BDD? Dado… um contexto Quando… a ação é executada Então… possuo um resultado Behavior Driven Development

Slide 5

Slide 5 text

Instalação go get github.com/onsi/ginkgo/ginkgo go get github.com/onsi/gomega/...

Slide 6

Slide 6 text

Vamos ao nosso primeiro teste Imaginar uma função fibonnaci

Slide 7

Slide 7 text

No content

Slide 8

Slide 8 text

Indica o Ginkgo a suíte que vai ser rodada. Avisa o GoMega que o teste falhou.

Slide 9

Slide 9 text

Describe It BeforeEach AfterEach XContext XIt Context Pit When XDescribe

Slide 10

Slide 10 text

Primeiro, identificamos a função que será testada Depois descrevemos o comportamento isolado da função, declaramos variáveis usadas nos testes...

Slide 11

Slide 11 text

Antes de cada test case, iremos definir o valor da variável que será passada para a função E logo em seguida vamos chamar a função testada com o valor que definimos

Slide 12

Slide 12 text

Definimos um contexto... E especificamos qual é o comportamento esperado dentro desse contexto E, por fim, testamos se o valor retornado é o que estávamos esperando

Slide 13

Slide 13 text

Seguindo esse modelo, podemos adicionar quantos contextos forem necessários

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

E vamos rodar os testes...

Slide 16

Slide 16 text

No content

Slide 17

Slide 17 text

E se o retorno da função for diferente do esperado?

Slide 18

Slide 18 text

No content

Slide 19

Slide 19 text

Podemos "pular" alguns test cases temporariamente...

Slide 20

Slide 20 text

Assim como focar apenas em testes específicos

Slide 21

Slide 21 text

-r roda os testes recursivamente dentro de um diretório -succinct retorna informações bem reduzidas da suíte de testes -cover retorna porcentagem da cobertura de testes -failFast para a suite de testes em andamento quando houver falha -timeout falha o teste se demorar mais do que n segundos para completar ginkgo -v ./...

Slide 22

Slide 22 text

Obrigado! @carolinacaires - @igorhalfeld