mock是以代码实现,模拟接口返回数据
在Python2.x 中 mock是一个单独模块,需要单独安装
安装mock:cmd->pip install mock
检查是否安装成功:cmd->python->import mock
导入:from mock import mock
在Python3.x中,mock已经被集成到了unittest单元测试框架中,所以,可以直接使用
导入:from unittest import mock
def test_01(self):
url = 'http://127.0.0.1:8000/login/'
data = {
'username': 'test1',
'password': 222
}
run = RunMain(url, 'POST', data=data)
mock_data=mock.Mock(return_value=data) #调取mock方法,把data的值当成模拟的数据
run.run_main=mock_data #把mock的值替换成run.run_main的返回数据
res = run.run_main(url,'POST',data)
print(res)
self.assertEqual(res['username'],'test1','测试失败')
先封装一个mock方法
from unittest import mock
def mock_test(response_data,mock_method,url,method,request_data):
#mock模拟的返回值,mock模拟的方法,run_main里面的url,方法,请求参数
mock_method=mock.Mock(return_value=response_data)
res=mock_method(url,method,request_data)
return res
在调取mock封装好的方法
from mock_demo import mock_test
class TestMethod(unittest.TestCase):
# @unittest.skip('test_01')
def test_01(self):
url = 'http://127.0.0.1:8000/login/'
data = {
'username': 'test1',
'password': 222
}
run = RunMain(url, 'POST', data=data)
res=mock_test(data,run.run_main,url,'POST',data)
print(res)
self.assertEqual(res['username'],'test1','测试失败')