Coding Dojo #18 KataTennis

Olá pessoal, hoje tivemos nosso décimo oitavo Coding Dojo. Contamos com a participação da nova programadora contratada, a Nelma, Seja bem vinda!

Nosso segundo contato com o  Cucumber, ainda tivemos um pouco de dificuldade para trabalhar com  BDD (Behavior Driven Development), talvez pela cultura criada pelos Dojos passados. Porém o barco andou e o Dojo foi bem interessante. Também tivemos o sorteio da próxima sequencia de curadores, ficou a seguinte sequência:

  • Marco Moura e Patrícia Carvalho
  • Natália Marcondes e Luciana Mendes
  • Carlos Eduardo e Nelma
  • Salomão  e próximo sorteado

E pra encerrar, ainda tivemos o café. Que contou até com Panetone de Mousse. =)

Origem do kata: http://codingdojo.org/cgi-bin/wiki.pl?KataTennis

Código Fonte: https://gist.github.com/734600

env.rb

# encoding: utf-8
begin require 'rspec/expectations'; rescue LoadError; require 'spec/expectations'; end
require 'cucumber/formatter/unicode'
$:.unshift(File.dirname(__FILE__) + '/../../lib')
require "tennis"

tenis.feature

Funcionalidade: Partidade de tênis
Para gerenciar uma partida de tênis
Como um juiz
Eu quero cadastrar os pontos

Cenário: Jogador 1 vence a partida de zero
Dado que a bola inicia com o jogador um
Quando o jogador um marca 15 pontos
E o jogador um marca 30 pontos
E o jogador um marca 40 pontos
E o jogador um marca ponto final
Então o jogador um vence a partida
Cenário: Jogador 2 vence a partida de zero
Dado que a bola inicia com o jogador um
Quando o jogador 2 marca 15 pontos
E o jogador 1 marca 15 pontos
E o jogador 2 marca 30 pontos
E o jogador 2 marca 40 pontos
E o jogador 2 marca ponto final
Então o jogador 2 vence a partida

tenis_steps.rb

# encoding: utf-8

Dado /^que a bola inicia com o jogador um$/ do
@tennis = Tennis.new
end

Quando /^o jogador um marca (\d+) pontos$/ do |arg1|
 @tennis.jogador1 = arg1.to_i
 @tennis.jogador1.should == arg1.to_i
end

Quando /^o jogador um marca ponto final$/ do
@tennis.jogador1 = 41
@tennis.jogador1.should > 40
end

Então /^o jogador um vence a partida$/ do
  @tennis.vencedor().should == "Jogador1 eh o vencedor"
end

Quando /^o jogador (\d+) marca (\d+) pontos$/ do |qual_jogador, pontos|
 @tennis.jogador2 = pontos.to_i
 @tennis.jogador2.should == pontos.to_i
end

Quando /^o jogador (\d+) marca ponto final$/ do |arg1|
  @tennis.jogador2 = 41
@tennis.jogador2.should > 40
end

Então /^o jogador (\d+) vence a partida$/ do |arg1|
  @tennis.vencedor().should == "Jogador2 eh o vencedor"
end

tennis.rb

class Tennis

attr_accessor :jogador1 , :jogador2

def vencedor()
if jogador1 == 41
"Jogador1 eh o vencedor"
else
"Jogador2 eh o vencedor"
end
end
end

Retrospectiva
Ruim

  • Projetor
  • Atraso dos Participantes
  • Faltou copias do Kata
  • Kata mal Explicado
  • Substituição do PC do Dojo
  • Falta de conhecimento em Cucumber
  • Falta de Foco

Bom

  • Nelma – nova integrante
  • Melhorou um pouco conhecimento em cucumber
  • kata
  • Café e Panetone
  • Contato com IMac
  • Textmate
  • Curadores
  • Explicação das Regras

Para os próximos

  • Estudar mais cucumber
  • Brincadeira na hora certa

Fotos do Encontro