mock服务
mock是Python中一个用于支持单元测试的库,主要功能是使用mock对象替代指定的Python对象,以达到模拟对象的行为。
1.安装mock
pip install mock
2.封装mock服务代码
#coding:utf-8
from mock import mock
#封装mock方法,输入参数依次为 mock_method运行的方法,请求数据,路径,请求方法,返回数据
def mock_test(mock_method,request_data,url,method,respanse_data):
mock_method = mock.Mock(return_value=respanse_data)
res=mock_method(url,method,request_data)
return res
用例依赖
接下来是看test_02依赖test_01的测试代码,主要是test_01方法中定义一个全局变量获取返回数据的token值,即可在test_02使用print(globals()[‘token’])
#cding:utf-8
import unittest
from base import runmethod
from base.testmock import mock_test
class TestMethod(unittest.TestCase):
@classmethod
def setUpClass(cls):
print("类执行之前的方法")
@classmethod
def tearDownClass(cls):
print("类执行之后的方法")
#测试方法执行之前
def setUp(self):
self.run = runmethod.RunMethod()
print('test--------setup')
#测试方法执行后
def tearDown(self):
print('test--------tearDown')
def test_01(self):
url = "https://XXX/api/login"
method = 'post'
data = {
"account": “X”,
"password": “X”,
"domainNumber": “X”
}
res=self.run.run_main(method,url,data)
self.assertEquals(res['code'],200,'测试失败')
#获取返回数据的tocken数据
res_tocken = res['data']['token']
# 全局变量,globals() 函数会以字典类型返回当前位置的全部全局变量。
globals()['token'] = res_tocken
print(res_tocken)
def test_02(self):
url = "https://XXX/api/login"
method = 'post'
data = {
"account": “X”,
"password": “X”,
"domainNumber": “X”
}
#使用mock服务模拟返回数据
res=mock_test(self.run.run_main,data,url,method,data)
print(res)
# self.assertEquals(res['code'], 200, '测试失败')
#打印依赖的数据值
print(globals()['token'])
if __name__ == '__main__':
unittest.main()