python mock
1、基础的打桩方式
# stub.py
import mock
import need
def myfunc():
pass
need.func = mock.MagicMock(side_effect=myfunc)
# need.py
def func():
pass
# main.py
import need
import stub
from need import func
need.func()
# 以下方式mock无效
func()
1.1 打桩方式2
# stub.py
import mock
import need
def myfunc():
pass
need.func2 = mock.MagicMock(side_effect=myfunc)
# need.py
from other import func2
def func():
func2()
# main.py
import need
import stub
from need import func
need.func()
# 以下方式mock无效
func()
2、对装饰器包裹的函数打桩
同上,依旧对原函数打桩
3、多进程打桩
需要令打桩操作和主函数同时处于内存中