Comparar a Saída com o Valor Esperado
Nesta etapa, você aprenderá como comparar a saída de uma função com um valor esperado. Esta é uma parte crucial dos testes e garante que suas funções estejam funcionando corretamente. Ao comparar a saída real com a saída esperada, você pode identificar e corrigir quaisquer erros em seu código.
Continuaremos usando o arquivo calculate_sum.py das etapas anteriores. Se você não concluiu as etapas anteriores, crie o arquivo com o seguinte conteúdo:
def calculate_sum(x, y):
"""
Esta função calcula a soma de dois números.
Se a soma for maior que 10, ela retorna o dobro da soma.
"""
sum_result = x + y
if sum_result > 10:
return sum_result * 2
else:
return sum_result
## Exemplo de uso:
num1 = 10
num2 = 5
result = calculate_sum(num1, num2)
print("A soma de", num1, "e", num2, "é", result)
## Captura a saída e realiza uma operação adicional
final_result = result + 20
print("O resultado final após adicionar 20 é:", final_result)
num3 = 2
num4 = 3
result2 = calculate_sum(num3, num4)
print("A soma de", num3, "e", num4, "é", result2)
## Captura a saída e realiza uma operação adicional
final_result2 = result2 * 2
print("O resultado final após multiplicar por 2 é:", final_result2)
Agora, vamos adicionar uma função para comparar a saída com um valor esperado e imprimir uma mensagem indicando se o teste passou ou falhou.
-
Abra o arquivo calculate_sum.py no editor VS Code.
-
Modifique o script da seguinte forma:
def calculate_sum(x, y):
"""
Esta função calcula a soma de dois números.
Se a soma for maior que 10, ela retorna o dobro da soma.
"""
sum_result = x + y
if sum_result > 10:
return sum_result * 2
else:
return sum_result
def compare_output(actual_output, expected_output):
"""
Esta função compara a saída real com a saída esperada.
"""
if actual_output == expected_output:
print("Teste passou!")
else:
print("Teste falhou. Esperado:", expected_output, "Real:", actual_output)
## Exemplo de uso:
num1 = 10
num2 = 5
result = calculate_sum(num1, num2)
print("A soma de", num1, "e", num2, "é", result)
## Captura a saída e realiza uma operação adicional
final_result = result + 20
print("O resultado final após adicionar 20 é:", final_result)
## Compara a saída com o valor esperado
expected_final_result = 50
compare_output(final_result, expected_final_result)
num3 = 2
num4 = 3
result2 = calculate_sum(num3, num4)
print("A soma de", num3, "e", num4, "é", result2)
## Captura a saída e realiza uma operação adicional
final_result2 = result2 * 2
print("O resultado final após multiplicar por 2 é:", final_result2)
## Compara a saída com o valor esperado
expected_final_result2 = 10
compare_output(final_result2, expected_final_result2)
Neste script modificado:
- Definimos uma função chamada
compare_output que recebe dois argumentos: actual_output e expected_output.
- Dentro da função, comparamos o
actual_output com o expected_output.
- Se eles forem iguais, imprimimos "Teste passou!".
- Se eles não forem iguais, imprimimos "Teste falhou." junto com os valores esperados e reais.
- Em seguida, chamamos a função
compare_output com final_result e expected_final_result para comparar a saída do primeiro cálculo com o valor esperado de 50.
- Também chamamos a função
compare_output com final_result2 e expected_final_result2 para comparar a saída do segundo cálculo com o valor esperado de 10.
-
Execute o script usando o seguinte comando:
python ~/project/calculate_sum.py
Você deve ver a seguinte saída:
A soma de 10 e 5 é 30
O resultado final após adicionar 20 é: 50
Teste passou!
A soma de 2 e 3 é 5
O resultado final após multiplicar por 2 é: 10
Teste passou!
Esta saída demonstra que você pode comparar com sucesso a saída de uma função com um valor esperado e determinar se o teste passou ou falhou.