3. Testando o código#
Fonte dos vídeos
Todos os vídeos são da própria autora do livro original.
É super prático e divertido brincar com o código para processar dados em um arquivo Jupyter Notebook .ipynb
, mas para tornar seu código escalável, sugere-se quebrá-lo em funções e classes. Quando você usa scripts .py
ao invés de notebooks ipynb
seu código pode quebrar por causa de algumas funções. E mesmo se não quebrar, como você saberá se as suas funções se comportam como você espera?
Por exemplo, criamos a função para extrair o sentimento de um texto com a TextBlob, uma biblioteca Python para processamento de dados textuais. Nós gostaríamos de garantir que ela funciona como o esperado: que a função retorne um valor maior que 0 quando o texto for positivo, e que retorne um valor menor que 0 quando o texto for negativo.
from textblob import TextBlob
def extract_sentiment(text: str):
'''Extrai um sentimento usando textblob.
Polaridade está no intervalo [-1, 1]'''
text = TextBlob(text)
return text.sentiment.polarity
Para testar se a função retornará sempre o mesmo valor todas as vezes, a melhor forma é submeter a função a vários exemplos para ver se ela reproduz os resultados que desejamos. É quando os testes unitários demonstram sua importância.
De forma geral, devemos usar testes unitários em nossos projetos de ciência de dados porque ele permite:
Ter a certeza de que o código funciona conforme esperado;
Garantir que o código funcione como o esperado;
Detectar casos extremos;
Sentir confiança para mergulhar no código sem medo de quebrar o pipeline inteiro;
Seus colegas conseguem entender sua função simplesmente olhando seus respectivos testes.
Neste capítulo, vamos aprender como testar o nosso código com Pytest.