我有这样的课:
class CrazyClass(object):
___self__ = random()
我需要在我的单元测试中使用这个类,我需要设置__self__
一个可预测的值,比如None
or 0
。(请注意,这是一个人为的例子,我并不是每次初始化类时都真正生成一个随机数。)
如何CrazyClass
为我的测试类中的所有测试用例只修补这个类属性?我不需要对 patched 的任何引用CrazyClass
,我只需要设置该值并在事后将其恢复,如下所示:
prev = CrazyClass.__self__
CrazyClass.__self__ = None
# do testing werk
CrazyClass.__self__ = prev
我怎样才能做到这一点?