O documento discute o desenvolvimento orientado à introspecção e apresenta a ferramenta InfinityTest. Ele descreve princípios como Connascence e Single Responsibility e como a ferramenta executa testes em vários Rubies de forma automatizada. O autor também discute melhorias futuras como suporte a Cucumber e deseja que o desenvolvimento seja orientado à diversão.
19. Connascence of Position
[['Tomás', 21], [ 'SuccesSoft', 0.5]]
def add(contacts)
contacts.each do |name, age|
# ...
end
end
sábado, 6 de novembro de 2010
20. COP => CON
class Contact
attr_accessor :name, :age
end
sábado, 6 de novembro de 2010
22. Connascence of
Algorithm
class Company
def profit(profit)
total = profit.inject(0) { |a, n| a + n }
100 + total
end
def profit?(profit)
total = profit.inject(0) { |a, n| a + n }
total > 0
end
end
sábado, 6 de novembro de 2010
23. COA => CON
class Company
def profit(profit)
100 + total_profit(profit)
end
def profit?(numbers)
total_profit(profit) > 0
end
def total_profit(profit)
profit.inject(0) { |a, n| a + n }
end
end
sábado, 6 de novembro de 2010
28. Linha de Comando
infinity_test --rspec
infinity_test --rubies=ree,1.9.2,jruby --rspec
infinity_test --rubies=ree,1.9.2,1.8.7 --test-unit
sábado, 6 de novembro de 2010