Uso de teste dirigido por teste (TDD)
Problema: Calcular o enésimo valor da serie de fibonnaci 0, 1, 1, 2, 3, 5, 8, 13 ou seja f(0)=0, f(1)=1, f(2)=1,f(3)=2,...)
Solução: o numero seguinte é o numero atual + o numero anterior
Definição matemática F(n+1)=F(n)+F(n-1) valores iniciais F0=0 F1=1 F2=1 F{n}= { 0, se n=0
1, se n=1
Fn-1+Fn-2, para outros casos }
#definição do 1o teste - fib(0)=0 - dirigir o teste apartir de um valor dado e valor esperado
#def testFibonacci():
# assertEqual(0, fib(0)) #assertEquals é um método que recebe como parâmetro o resultado do método que está sendo testado
# #e o resultado esperado pelo desenvolvedor caso o método testado esteja correto ou seja:
# #assertEqual (resultado esperado da execução do metodo a ser testado,metodo a ser testatdo) se for
#execução do teste
print (fib(0))
#definição do 1o teste - fib(0)=0 - dirigir o teste apartir de um valor dado e valor esperado
#def testFibonacci():
# assertEqual(0, fib(0)) #assertEquals é um método que recebe como parâmetro o resultado do método que está sendo testado
# #e o resultado esperado pelo desenvolvedor caso o método testado esteja correto ou seja:
# #assertEqual (resultado esperado da execução do metodo a ser testado,metodo a ser testatdo) se for
def fib(n):
return 0
#execução do teste
print (fib1(0))
#definição do 2o teste fib(1)=1
#def testFibonacci():
# assertEqual(1, fib(1))
def fib(n):
return 1
#execução do teste
print (fib(1))
#definição do 3o teste fib(1)=1
#def testFibonacci():
# assertEqual(1, fib(1))
def fib(n):
if (n==0):
return 0
return 1
#execução do teste
print (fib(0),fib(1))
#definição do 3o teste - Fatorar a estrutura comum das asserções
#dirigindo o teste a partir de uma tabela de entrada e valores esperados
#def testFibonacci():
# cases={{0,0},{1,1}}
# for i in range (cases.lenght):
# assertEqual(cases[i][1], fib(cases[i][0]))
def fib(n):
if (n==0):
return 0
return 1
#execução do teste
print (fib(0),fib(1))
#definiç
#ão do 4o teste - adicionar proximo caso
#def testFibonacci():
# cases={{0,0},{1,1},{2,1}}
# for i in range (cases.lenght):
# assertEqual(cases[i][1], fib(cases[i][0]))
def fib(n):
if (n==0):
return 0
return 1
#execução do teste
print (fib(0),fib(1),fib(2))
#definição do 5o teste - adicionar proximo caso - opa errado fib(3)=2 e não 1
#def testFibonacci():
# cases={{0,0},{1,1},{2,1},{3,2}}
# for i in range (cases.lenght):
# assertEqual(cases[i][1], fib(cases[i][0]))
def fib(n):
if (n==0):
return 0
return 1
#execução do teste
print (fib(0),fib(1),fib(2),fib(3))
#definição do 6o teste - corrigindo anterior
def testFibonacci():
cases={{0,0},{1,1},{2,1},{3,2}}
for i in range (cases.lenght):
assertEqual(cases[i][1], fib(cases[i][0]))
def fib(n):
if (n==0):
return 0
if (n<=2):
return 1
return 2
#execução do teste
print (fib(0),fib(1),fib(2),fib(3))
#definição do 7o teste - generalizando 2 quer dizer 1 + 1
def testFibonacci():
cases={{0,0},{1,1},{2,1},{3,2}}
for i in range (cases.lenght):
assertEqual(cases[i][1], fib(cases[i][0]))
def fib(n):
if (n==0):
return 0
if (n<=2):
return 1
return 1+1
#execução do teste
print (fib(0),fib(1),fib(2),fib(3))
#definição do 8o teste - generalizando 1 + 1 quer dizer fib(n-1)+1
def testFibonacci():
cases={{0,0},{1,1},{2,1},{3,2}}
for i in range (cases.lenght):
assertEqual(cases[i][1], fib(cases[i][0]))
def fib(n):
if (n==0):
return 0
if (n<=2):
return 1
return fib(n-1)+1
#execução do teste
print (fib(0),fib(1),fib(2),fib(3))
#definição do 9o teste - generalizando 2 quer dizer fib(n-1)+fib(n-2)
def testFibonacci():
cases={{0,0},{1,1},{2,1},{3,2}}
for i in range (cases.lenght):
assertEqual(cases[i][1], fib(cases[i][0]))
def fib(n):
if (n==0):
return 0
if (n<=2):
return 1
return fib(n-1)+fib(n-2)
#execução do teste
print (fib(0),fib(1),fib(2),fib(3))
#definição do 10o teste - limpando e estreitando a 2a condição testando proximo caso fib(4)
#def testFibonacci():
# cases={{0,0},{1,1},{2,1},{3,2}}
# for i in range (cases.lenght):
# assertEqual(cases[i][1], fib(cases[i][0]))
def fib(n):
if (n==0):
return 0
if (n==1):
return 1
return fib(n-1)+fib(n-2)
#execução do teste
print (fib(0),fib(1),fib(2),fib(3),fib(4))
#definição do 11o teste - limpando e estreitando a 2a condição testando proximo caso fib(5)e fib(6)
def fib(n):
if (n==0):
return 0
if (n==1):
return 1
return fib(n-1)+fib(n-2)
#execução do teste
print (fib(0),fib(1),fib(2),fib(3),fib(4),fib(5),fib(6))
from splinter import Browser
with Browser() as browser:
# Visit URL
url = "http://www.google.com"
browser.visit(url)
browser.fill('q', 'splinter - python acceptance testing for web applications')
# Find and click the 'search' button
button = browser.find_by_name('btnG')
# Interact with elements
button.click()
if browser.is_text_present('splinter.cobrateam.info'):
print ("Yes, the official website was found!")
else:
print ("No, it wasn't found... We need to improve our SEO techniques")