如题:python3.7 如何 mock.patch 一个装饰器装饰过的函数??网上有关于如何 mock 装饰器的例子,但是都跑不通。 比如这个例子就不行 https://www.jianshu.com/p/70a0bc3e3dc4
# yyy.py
import functools
def timeit(func):
@functools.wraps(func)
def wrap(*args, **kwargs):
print('timeit')
return func(*args, **kwargs)
return wrap
@timeit
def foo():
print('foo')
# xxx.py
import functools
from unittest import TestCase, main
from unittest import mock
def mock_timeit(func):
@functools.wraps(func)
def wrap(*args, **kwargs):
print('mock timeit')
return func(*args, **kwargs)
return wrap
mock.patch('yyy.timeit', mock_timeit).start()
import yyy
class YYYTestCase(TestCase):
def test_yyy(self):
print(yyy.foo()) # 应该输出 mock timeit
if __name__ == '__main__':
main()
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.