mock测试就是在测试过程中,对于某些不容易构造或者不容易获取的对象,用一个虚拟的对象来创建以便测试的测试方法。
1.在测试接口时使用mock
1 #from unittest import mock 2 def test_create_zone_success(self): 3 u"""成功添加区域""" 4 data = {"Data": [{"zoneNumber": 11, "zoneName": "11"}]} 5 self.zones_num = [11] 6 self.wdms.create_zone = mock.Mock(return_value={"zoneNumber": 11, "zoneName": "11"}) #对 create zone方法进行mock,接口返回值为return_value 7 res = self.wdms.create_zone(data=data) 8 print(res) 9 # self.assertEqual(res['message'], 'Succeed') 10 # self.assertEqual(res['code'], 200)
以上代码运行后打印出res,res为{"zoneNumber": 11, "zoneName": "11"}
2.封装mock
1 from unittest import mock 2 import json 3 def mock_test(method, request_data, response_data): 4 request_data = json.dumps(request_data) 5 method = mock.Mock(return_value=response_data) 6 res = method(request_data) 7 return res
调用mock_test
1 def test_create_zone_success(self): 2 u"""成功添加区域""" 3 data = {"Data": [{"zoneNumber": 11, "zoneName": "11"}]} 4 self.zones_num = [11] 5 res = mock_test(self.wdms.create_zone, data, 'test mock') #调用mock方法 6 print(res)