Avec deux modèles:Django: réutilisation des tests unitaires dans d'autres tests unitaires
class Model1(models.Model):
attribute = models.CharField(max_length=100)
class Model2(models.Model):
target = models.ForeignKey(Model1)
Et unittest tests.py
:
class Model1Test(TestCase):
def test_make_new_model_and_save():
m = Model1()
m.attribute = 'test values'
m.save()
class Model2Test(TestCase):
def test_make_new_model_and_save():
# Make new Model1 to FK to
m = Model1()
m.attribute = 'test values'
m.save()
m2 = Model2()
m2.target = m
m2.save()
Je voudrais simplement appeler la fonction unittest définie dans la classe de test de Model1, plutôt que de dupliquer à nouveau le code pour tester Model2. Ce que j'imagine comme:
class Model1Test(TestCase):
def test_make_new_model_and_save():
m = Model1()
m.attribute = 'test values'
m.save()
return m
class Model2Test(TestCase):
def test_make_new_model_and_save():
# Make new Model1 to FK to
m = Model1Test('test_make_new_model_and_save')
m2 = Model2()
m2.target = m
m2.save()
Mais cela ne semble pas fonctionner et je me retrouve immédiatement dans les entrailles du cadre de tests unitaires. Je ne trouve pas beaucoup de références à ce genre de choses, alors étant nouveau pour les tests unitaires, j'ai l'impression d'avoir fait un mauvais virage quelque part.
Existe-t-il une méthode «normale» de réutilisation des tests unitaires, ou mon approche est-elle faussée?