Créez une classe personnalisée qui hérite de TestCase
et définissez la valeur de départ dans setUp ()
.
Chaque application hérite d'une classe personnalisée et écrit un test.
Je voulais assurer la reproductibilité des tests lors de l'utilisation de factory_boy
avec Django.
factory-boy==2.12.0
BaseTestCase
Définissez une classe BaseTestCase
qui corrige la valeur de départ.
J'écris une application base
et j'y écris des classes abstraites.
python:./base/tests.py
from django.test import TestCase
import factory.random
class BaseTestCase(TestCase):
def setUp(self):
factory.random.reseed_random(0)
return super().setUp()
TestCase
Héritez de la classe BaseTestCase
et définissez chaque cas de test.
python:./user/tests.py
from base.tests import BaseTestCase
from .models import User
from .factories import UserFactory
class UserTestCase(BaseTestCase):
def test_create_user(self):
user = UserFactory()
actual_user = User.objects.get(pk=user.pk)
self.assertEqual(user, actual_user)
Bien sûr, lors de la définition de setUp ()
, appelez également la méthode de la classe parent.
python:./user/tests.py
class UserTestCase(BaseTestCase):
def setUp(self):
super().setUp()
print("initialize")
def test_create_user(self):
user = UserFactory()
actual_user = User.objects.get(pk=user.pk)
self.assertEqual(user, actual_user)
En fixant la valeur de départ, le test peut être exécuté avec la reproductibilité garantie. Cet article est basé sur Django, mais il devrait être valable non seulement pour Django.
Recommended Posts