O documento discute como testes de colaboração e contrato podem ser usados para otimizar integrações. Testes de colaboração verificam se componentes se comunicam corretamente, enquanto testes de contrato validam se componentes cumprem suas responsabilidades. Isso permite integrar componentes mais cedo e identificar problemas de integração rapidamente.
Ride the Storm: Navigating Through Unstable Periods / Katerina Rudko (Belka G...
Otimizando integrações com testes de colaboração e contrato
1. OTIMIZANDO INTEGRAÇÕES COM
TESTES DE COLABORAÇÃO E CONTRATO
@snit_ram
http://www.flickr.com/photos/viasualart2011/5941136672/sizes/l/in/photostream/
2. TEORIA DAS FILAS
http://www.flickr.com/photos/57665680@N06/5649865356/sizes/l/in/photostream/
3. TEORIA DAS FILAS
“ Dado um processo B, que sucede um
processo A, as vezes, ao executar B,
precisamos refazer parte de A. Podemos
evitar este retrabalho extraindo parte de
B e executando-o antes do processo A
”
35. COMO FUNCIONA
C
o
Testes de n
t
Testes de
1 5
r
Colaboração a Contrato
t
o
36. COMO FUNCIONA
Colaboração
Fiz a pergunta certa?
5
1
Mock
Sei tratar a resposta?
37. COMO FUNCIONA
Contrato
Sou capaz de responder?
5
Respondo como esperado?
38. COMO FUNCIONA
Colaboração Contrato
C
Fiz a pergunta o Sou capaz de
certa? n responder?
t
r
1 5
a
a
Sei tratar a t
Respondo como
o
resposta? esperado?
51. Make coffee
Water Led
has? Dispenser
CoffeeMaker
Ground
Coffee Led
has? Dispenser
52. Make coffee
Water Led
y/n Dispenser
CoffeeMaker
Ground
Coffee Led
y/n Dispenser
53. Make coffee
Water Led
Dispenser
CoffeeMaker
Ground
Coffee Led
Dispenser
exception
54. Make coffee
Water Led
get Dispenser
CoffeeMaker
Ground
Coffee Led
get Dispenser
55. Make coffee
Give Water Led
Dispenser
CoffeeMaker
Ground
Coffee Led
Dispenser
Give
56. Make coffee
has?
Water Led
Dispenser
CoffeeMaker
Ground
Coffee Led
Dispenser
has?
57. Make coffee
On
Water Led
Dispenser
CoffeeMaker
Ground
Coffee Led
Dispenser
On
58. Make coffee
Water Led
Dispenser
CoffeeMaker
Ground
Coffee Led
Dispenser
coffee
59. COLABORAÇÃO
has(5)
Water
CoffeeMaker Dispenser
Mock
True
60. COLABORAÇÃO
has(5)
Water
CoffeeMaker Dispenser
Mock
True
has(5)
Water
CoffeeMaker Dispenser
Mock
False
61. CONTRATO
amount=5
has(5)
Water
Dispenser
assertTrue()
62. CONTRATO
amount=5
has(5)
Water
Dispenser
assertTrue()
amount=2
has(5)
Water
Dispenser
assertFalse()
63. COLABORAÇÃO
get(5)
assertFalse( led.on.called )
Water Led
Dispenser Mock
amount=10
64. COLABORAÇÃO
get(5)
assertFalse( led.on.called )
Water Led
Dispenser Mock
amount=10
get(5)
assertTrue( led.on.called )
Water Led
Dispenser Mock
amount=5