我有以下mod1.py要测试的。
_p = None
def get_p():
global _p
if _p is None:
_p = P()
return _p
def deco(f):
p = get_p()
def wrapper(*args, **kwargs):
p.func1()
return f(*args, **kwargs)
return wrapper
并且P,
class P:
def func1(self):
pass
我有以下测试代码。
@mock.patch('mod1.get_p')
def test_1(mocked):
mocked.get_p = mock.Mock(P)
@mod1.deco()
def test():
pass
test() # will call _p.func1() once
assert mocked.func1.call_count == 1 # func1.count_count is zero
然而,它失败了
> assert p.func1.call_count == 1
E AssertionError: assert 0 == 1
为什么call_count是0?
米琪卡哇伊
相关分类