Skip to content

Latest commit

 

History

History
80 lines (59 loc) · 2.04 KB

primeiro-passos.md

File metadata and controls

80 lines (59 loc) · 2.04 KB

Primeiro passos com testes

Vamos realizar testes do models.py com o Django TestCase.

https://docs.djangoproject.com/en/1.8/topics/testing/overview/#module-django.test

Para realizar os testes do model utilizamos o arquivo tests.py da aplicação, assim o Django irá criar um banco de dados temporário para realizar todos os testes. Todos os testes são executados apenas neste banco de dados temporário.

Primeiro criamos a classe de testes...

from django.test import TestCase
from exemplo.models import Usuario

class UsuarioTest(TestCase):
    pass

Dentro da classe definimos os parâmetros do objeto com o setUp...

def setUp(self):
    self.usuario = {
        'id': 1,
        'nome': 'Marcos',
        'email': '[email protected]',
    }

Podemos definir também vários objetos diferentes do mesmo model...

def setUp(self):
    self.usuario1 = {
        'id': 1,
        'nome': 'Marcos',
        'email': '[email protected]',
    }
    self.usuario2 = {
        'id': 2,
        'nome': 'Vanessa',
        'email': '[email protected]',
    }

Adicionamos a função para inserir um objeto...

def test_inserir_usuario(self):
    usuario = Usuario.objects.create(**self.usuario)

    self.assertEqual(usuario.id, 1)

Para executar o teste utilize no terminal o comando abaixo:

 python manage.py test usuarios

Outra forma de configuração do setUp é criando os objetos diretamente ao invés de passar apenas os parâmetros, como no exemplo a seguir.

def setUp(self):
    Animal.objects.create(name="Leão", sound="roar")
    Animal.objects.create(name="Gato", sound="miau")

Assim podemos recuperar o objeto sem ter que criar o mesmo no teste por exemplo.

def test_som_animais(self):
    leao = Animal.objects.get(name="Leão")
    gato = Animal.objects.get(name="Gato")

    self.assertEqual(leao.som(), 'O Leão faz "roar"')
    self.assertEqual(gato.som(), 'O Gato faz "miau"')