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