我正在修改一些代码,这些代码被单元测试所覆盖。在单元测试中会发生这样的情况:
def create_object(cls, arg1=None, arg2=None, arg3=None, **kwargs):
kwargs['arg1'] = arg1 or DEFAULT1
kwargs['arg2'] = arg2 or DEFAULT2
kwargs['arg3'] = arg3 or DEFAULT3
return cls(kwargs)
基本上是一堆东西,让我们在编写测试时可以使用速记。你知道吗
我刚刚做了一个重构,这意味着传入的一些未实例化的对象类需要一个非kwarg参数。重构在代码体中是有意义的,但会导致测试失败。你知道吗
考虑到我不想从头重写所有失败的测试,最简单的解决方案是
if isinstance(cls, Foo):
return cls(kwargs, True)
else:
return cls(kwargs)
这当然是失败的,因为cls
实际上不是任何Foo
实例的实例。你知道吗
目前我有一个黑客解决方案,包括向kwargs
添加一个标志,然后检查它是否存在,如果存在,则从列表中pop
ping它。你知道吗
有没有更好的方法来检查函数对象是否会返回另一个类的实例?你知道吗
听起来你想
相关问题 更多 >
编程相关推荐