Erstellen Sie eine benutzerdefinierte Klasse, die von "TestCase" erbt, und legen Sie den Startwert in "setUp ()" fest. Jede App erbt eine benutzerdefinierte Klasse und schreibt einen Test.
Ich wollte die Reproduzierbarkeit des Tests sicherstellen, wenn ich factory_boy
mit Django verwende.
factory-boy==2.12.0
BaseTestCase
KlassendefinitionDefinieren Sie eine BaseTestCase-Klasse, die den Startwert festlegt. Ich schreibe eine Basisanwendung und schreibe dort abstrakte Klassen.
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()
Erben Sie die BaseTestCase-Klasse und definieren Sie jeden Testfall.
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)
Rufen Sie beim Definieren von "setUp ()" natürlich auch die Methode der übergeordneten Klasse auf.
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)
Durch Festlegen des Startwerts kann der Test mit garantierter Reproduzierbarkeit durchgeführt werden. Dieser Artikel basiert auf Django, sollte aber nicht nur für Django gelten.
Recommended Posts