|
|
|
|
|
|
|
|
Testes Unitários
|
|
|
----------------
|
|
|
|
|
|
testes unitários são pequenas funcções que testam o retorno de outras funções. No caso, das funções que você escreve para analises de dados, e na realidade para qualquer função.
|
|
|
|
|
|
Leia as três páginas do django (listadas [aqui](https://docs.djangoproject.com/en/1.11/topics/testing/)) sobre como escrever e executar testes unitários no django.
|
|
|
|
|
|
Além de você rodar esses testes na sua máquina, eles também serão executados no gitlab.
|
|
|
Dependendo do resultado disso no projeto, iremos configurar o servidor para automaticamente colocar em produção commit's que passarem nesse teste.
|
|
|
|
|
|
Uma prática de desenvolvimento de software chamada [TDD](
|
|
|
http://tdd.caelum.com.br/) estimula desenvolvedores a escrever os testes para uma função antes mesmo de escrever a dita função. Isso da mais clareza à interface de chamada e retorno da função.
|
|
|
|
|
|
|
|
|
Cuidado para sempre ler a documentação da versão correta do django, a 1.11
|
|
|
|
|
|
|
|
|
Coverage
|
|
|
--------
|
|
|
|
|
|
O coverage é uma ferramenta que ajuda a saber quanto do seu código está sendo testado pelos testes unitários. Tudo pode ser aberto no navegador e analisado visualmente.
|
|
|
|
|
|
|
|
|
Mas, a ferramenta não funciona 100%. Por exemplo, no código abaixo ele vai atestar 100% de cobertura de testes quando na verdade o resultado da função `funcC` nunca é testado. Ele faz isso por que não enxerga realmente o que foi testado ou não, só o que foi executado ou não. Tenha em mente essa limitação quanto fizer seus testes, não deixe que a não cobertura de funções seja camuflada desse jeito.
|
|
|
|
|
|
```Python
|
|
|
def funcB(x):
|
|
|
return x*2
|
|
|
|
|
|
def funcC(x):
|
|
|
return x**2
|
|
|
|
|
|
def funcA(x):
|
|
|
return (funcB(x), funcC(x))
|
|
|
|
|
|
class Test(TestCase):
|
|
|
def testA():
|
|
|
e = funcA(13)
|
|
|
|
|
|
self.assertEquals(26, e[0])
|
|
|
```
|
|
|
|
|
|
|
|
|
Dicas do projeto
|
|
|
----------------
|
|
|
|
|
|
Vai haver uma base de testes em algum ponto num futuro próximo. Um arquivo excel com a mesma estrutura do atual. Nesse momento siga essas orientações:
|
|
|
|
|
|
- não altere dados na base de teste, isso pode quebrar os testes de outras pessoas. Somente adicione os novos dados que você precisa
|
|
|
- não teste a quantidade de linhas retornadas, pode ser que alguém adicione um novo elemento que também passa pela sua filtragem e o seu teste vai quebrar
|
|
|
- teste a presença (ou ausência) do seu elemento de teste no conjunto retornado
|
|
|
|
|
|
|