关于如何在 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])

我成功地使用了这种方法。 你也可以试试这个。 希望对你有所帮助。