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
BaseTestCaseDé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()
TestCaseHé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