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.
