大约有十二个单元测试使用具有六个参数的类,其中一个或两个参数已针对测试进行了系统修改。感觉好像有很多重复。我想摆脱重复,并使其非常简洁明了,每个测试在六个参数中进行了修改。否则,该代码会容易出错,如果您不小心将某个assertFalse
的属性用于某个地方,则测试可能会成功,但并非出于您要测试的原因。
我只是要在脚本顶部实例化该类,为每个测试创建一个deepcopy
并根据需要修改其属性(由于需要烧瓶上下文,看起来像是变得凌乱。
base_instance = SomeClass(
firstparameter = "dog",
secondparameter = 5,
thirdparameter = [7, 8],
fourthparameter = 5.5,
fifthparameter = "bar"
sixthparameter = "foo"
)
问题是,括号内的关键字参数集并不是真正的python对象,您可以轻松地将其放入变量中,传递或轻轻地修改。是否可以通过某种方式在字典或其他结构中给该类提供其参数,因此我可以轻松地通过对拥有参数的对象的deepcopy
进行系统更改来创建实例?我希望它对关键字保持明确,因此不要开始搞乱列表和位置参数。
答案 0 :(得分:2)
您绝对可以做到这一点。
params = {
'firstparameter': "dog",
'secondparameter': 5,
'thirdparameter': [7, 8],
'fourthparameter': 5.5,
'fifthparameter': "bar",
'sixthparameter': "foo"
}
base_instance = SomeClass(**params)