0

我有这样的课:

class CrazyClass(object):
    ___self__ = random()

我需要在我的单元测试中使用这个类,我需要设置__self__一个可预测的值,比如Noneor 0。(请注意,这是一个人为的例子,我并不是每次初始化类时都真正生成一个随机数。)

如何CrazyClass为我的测试类中的所有测试用例只修补这个类属性?我不需要对 patched 的任何引用CrazyClass,我只需要设置该值并在事后将其恢复,如下所示:

prev = CrazyClass.__self__
CrazyClass.__self__ = None
# do testing werk
CrazyClass.__self__ = prev

我怎样才能做到这一点?

4

0 回答 0