在python中,使用mock模块实现简单模拟数据
在python中,使用mock模块实现模拟数据
什么是mock?
mock是在测试过程中,对于一些不容易构造/获取的对象,创建一个mock对象来模拟对象的行为。比如说你需要调用B服务,可是B服务还没有开发完成,那么你就可以将调用B服务的那部分给Mock掉,并编写你想要的返回结果。
对于单元模块(A)测试需要依赖到另一个单元模块(B)的返回参数,而另一单元模块(B)开发所编写部分程序尚未完成,这时我们就需要用到mock模块来替换掉(B)的返回参数,完成单元模块(A)的测试
mock的安装:
在python2.x中,mock是一个单独模块,需要单独安装。
pip install -U mock
在python3.x(以上)中,mock已经被集成到了unittest单元测试框架中,所以,在unittest直接使用
from unittest import mock
mock在python的使用方法:
结果:
可以看出,B返回的参数通过调用mock模块完成了参数替换
代码部分
from unittest import mock
class B:
def give_id(self):
pass
class A:
def accept_id(self):
# 创建mock对象
get_mocke = mock.Mock(return_value=‘我是替代B的返回参数’)
#创建python对象
get_python = B()
#getmock对象替换类方法对象 ,方法有括号表示调用,无括号表示执行
get_python.give_id = get_mocke
#指定类方法的返回参数
accept_id = get_python.give_id()
# 打印接受的参数
print(accept_id)
if name == ‘main’:
A().accept_id()