如题: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()