10-Mock模擬介面返回資料
阿新 • • 發佈:2018-11-25
1、安裝mock
方法一:pip安裝
命令列直接輸入:pip install mock
方法二:官網下載mock安裝包安裝
下載安裝包後,解壓,命令列進入解壓目錄,執行python setup.py install
2、mock模擬返回值
1)不封裝,mock模擬返回值
# encoding:utf-8 from mock import mock import unittest from base.requestsDemo import SendMain # 建立測試類,繼承unittest.TestCase class MockTest(unittest.TestCase):def setUp(self): self.run = SendMain() def test_1(self): # 定義請求的post資料並返回 postData = {'username': 'wangling', 'password': '123456'} # 定義請求的post url postUrl = 'http://127.0.0.1:8000/postDataHandle/' # 定義請求的響應結果 respnse_data = postData # 響應資料mockData = mock.Mock(return_value=respnse_data) # mockData是send_main方法的模擬值 self.run.send_main = mockData res = self.run.send_main(postUrl, 'POST', postData) print res def test_2(self): getData = {'username': 'xiaohua', 'mobile': '13066990001', 'data': 'haha'} getUrl = 'http://127.0.0.1:8000/getDataHandle' mockData = mock.Mock(return_value=getData) self.run.send_main = mockData res = self.run.send_main(getUrl, 'GET', getData) print res if __name__ == '__main__': unittest.main()
2)封裝,mock模擬返回值
可以將mock模擬返回結果封裝一下,使程式碼重用性更高,具體如下:
# coding:utf-8 from mock import mock # 模擬mock封裝 def mock_test(mock_method,url, method,response_data,request_data=None): mock_method = mock.Mock(return_value=response_data) res = mock_method(url, method, request_data) return res
呼叫如下:
# encoding:utf-8 import unittest from base.requestsDemo import SendMain from base.mockdemoRe import mock_test # 建立測試類,繼承unittest.TestCase class MockTest(unittest.TestCase): def setUp(self): self.run = SendMain() def test_2(self): getData = {'username': 'xiaohua', 'mobile': '13066990001', 'data': 'haha'} getUrl = 'http://127.0.0.1:8000/getDataHandle' respnseDate = getData mock_test(self.run.send_main,getUrl,'GET',respnseDate,getData) res = self.run.send_main(getUrl, 'GET', getData) print res if __name__ == '__main__': unittest.main()