关于如何在 Python 中为 DTO 编写工厂的任何建议
Any suggestions on how to write factories for DTOs in Python
我使用 DTO 在我的应用程序中的不同 layers/classes 之间传递数据。因此,在测试这些 类 期间,我不得不使用一些虚拟数据手动创建这些数据 类 的对象,这对我来说是一个严重的痛点,任何关于自动化这些东西的建议,比如 Django 模型的 factoryboy。
我有一个如下所示的用户 DTO。
import dataclasses
@dataclasses.dataclass
class UserDetailsDto:
user_id: int
user_name: str
profile_pic: str
is_admin: bool
对于那个 DTO,我写了一个这样的工厂。
import factory
import factory.fuzzy
class UserDetailsDtoFactory(factory.Factory):
class Meta:
model = UserDetailsDto
user_id = factory.sequence(lambda n: n)
user_name = factory.sequence(lambda n: 'Username-%s' % n)
profile_pic = factory.sequence(lambda n: 'Dummy Profile Pic %s' % n)
is_admin = factory.Iterator([True, False])
我成功地使用了这种方法。
你也可以试试这个。
希望对你有所帮助。
我使用 DTO 在我的应用程序中的不同 layers/classes 之间传递数据。因此,在测试这些 类 期间,我不得不使用一些虚拟数据手动创建这些数据 类 的对象,这对我来说是一个严重的痛点,任何关于自动化这些东西的建议,比如 Django 模型的 factoryboy。
我有一个如下所示的用户 DTO。
import dataclasses
@dataclasses.dataclass
class UserDetailsDto:
user_id: int
user_name: str
profile_pic: str
is_admin: bool
对于那个 DTO,我写了一个这样的工厂。
import factory
import factory.fuzzy
class UserDetailsDtoFactory(factory.Factory):
class Meta:
model = UserDetailsDto
user_id = factory.sequence(lambda n: n)
user_name = factory.sequence(lambda n: 'Username-%s' % n)
profile_pic = factory.sequence(lambda n: 'Dummy Profile Pic %s' % n)
is_admin = factory.Iterator([True, False])
我成功地使用了这种方法。 你也可以试试这个。 希望对你有所帮助。