这里是Noseb的N00b。
查看unittest.mock的文档,我没有看到存根变量的明显方法。我正在测试一个声明了常量的类。一个常量是一个非常大的int,出于测试目的,我想用一个小得多的int替换它。
我的理解是你只能模拟(使用@patch装饰器)一个函数,而不是一个变量。
这是可能的,如果是的话,怎么样?
答案 0 :(得分:2)
您可以使用补丁装饰器替换常量。 e.g:
>>> import mock
>>> class Foo(object):
... bar = 1000000
...
>>> with mock.patch.object(Foo, 'bar', 10):
... print(Foo.bar)
...
10
>>> print(Foo.bar)
1000000
具体来说,请查看new
patch
关键字参数的documentation patch
(或mock
系列中的任何不同项目)...
我在python2.x上from unittest import mock
仍然是第三方模块。更改为{{1}}应使上述代码适合您。