我正在看这样的类层次结构:
class LevelOne(object):
def __init__(self,level_two_inst):
self.level_two_inst = level_two_inst
self.data = self.compute_sth(level_two_inst)
class LevelTwo(object):
def __init__(self,level_three_inst):
self.level_three_inst = level_three_inst
self.data = self.compute_sth(level_three_inst)
我想进行单元测试LevelOne
。由于每个级别的计算步骤相当冗长,我想使用autospec模拟LevelTwo
。我还想使用spec_st=True
来确保属性数据是LevelTwo
的有效属性。
但是,要实例化LevelOne
进行测试,我需要模拟LevelTwo
,LevelThree
等等。
我目前的工作是:
class LevelOne(object):
def __init__(self,level_two_inst=None):
if level_two_inst is None:
self.data = None
return
self.level_two_inst = level_two_inst
self.data = self.compute_sth(level_two_inst)
现在,我可以在运行data
的测试时设置LevelOne
属性。但是,我不希望level_two_inst
成为可选属性,因为它确实是必要的。
我是新手测试,尤其是使用模拟测试。任何提示都表示赞赏。