我正在尝试使用 backport 包将我们的 namedtuple 类移植到 Python 3.6 中的数据类中。但是,我注意到在模拟数据类类时,您不能再使用“spec”关键字了。我认为这是因为数据类代码是自动生成的。
from dataclasses import dataclass
import mock
@dataclass
class A:
aaa: str
bbb: int
m = mock.Mock(spec=A)
m.aaa
这是我得到的错误:
AttributeError: Mock object has no attribute 'aaa'
知道是否有任何方法可以自动将原始对象的所有属性设置为模拟对象?我有很多包含大量数据的数据类。如果我尝试手动设置值,那将非常乏味。