我在 Django 项目中使用 Factory Boy,我需要在相应的工厂中访问在类中定义的类属性。
我的测试用例大致如下:
from django.test.testcases import TransactionTestCase
from app.tests.factories import SomeModelFactory
class MyTestCase(TransactionTestCase):
def test_something(self):
...
SomeModelFactory.create(
data_type=SomeModelFactory.FACTORY_FOR.TYPE_STRING)
...
正如您可能猜到的那样,我的课程在正确的位置有相应的常量。
class SomeModel(models.Model):
TYPE_STRING = 2
...
并且相应的工厂被定义为它应该是
class SomeModelFactory(factory.Factory):
FACTORY_FOR = SomeModel
...
测试用例失败,FACTORY_FOR
说不存在。因此,我认为元类将其隐藏在某个地方。理想情况下,如果我使用工厂,我想尽量减少直接导入模型的需要。