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、多进程打桩
需要令打桩操作和主函数同时处于内存中

posted @ 2021-08-26 10:33  玉北  阅读(117)  评论(0编辑  收藏  举报