2 つのモデル:
class Model1(models.Model):
attribute = models.CharField(max_length=100)
class Model2(models.Model):
target = models.ForeignKey(Model1)
そして単体テスト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()
Model2 をテストするためにコードを再度複製するのではなく、Model1 のテスト クラス内で定義された unittest 関数を呼び出したいと思います。これは次のようになると思います:
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()
しかし、これは機能していないようで、すぐに単体テスト フレームワークの内部にいることに気付きます。この種のことへの言及があまり見つからないので、単体テストに慣れていないので、どこかで間違った方向に進んだと感じています。
単体テストを再利用する「通常の」方法はありますか、それとも私のアプローチに欠陥がありますか?