我应该为每个应用创建一个factories.py吗?

时间:2015-12-24 21:00:43

标签: django testing

我的项目包含很少的应用程序和一系列具有各种关系的模型。

我相信那个小男孩可以帮我保持我的项目DRY,每个应用程序可以在测试和种子上使用factory.py。这是一种有效的方法吗?

1 个答案:

答案 0 :(得分:1)

是的,这是一种有效的方法。

每个应用程序都有自己的factories.py文件,其中包含自己模型的工厂。如果应用程序还依赖于其他应用程序中的模型,则可以从原始应用程序导入它们以使其保持干燥状态。

示例:

app1
|__ factories.py
app2
|__ factories.py
app3
|__ tests.py     # Tests interaction of app3 with app1 and app2
|__ factories.py # Define factories for app3's models only
                 # and reuse factories from app1 and app2
                 # for their models

# app3/tests.py

from app1.factories import Model1
from app2.factories import Model2
from app3.factories import Model3

def test_feature_in_app3():
    # do something with Model1, Model2 and Model3