码迷,mamicode.com
首页 > 其他好文 > 详细

10-Mock模拟接口返回数据

时间:2018-11-25 20:33:05      阅读:247      评论:0      收藏:0      [点我收藏+]

标签:继承   响应   font   int   port   执行   end   main   pre   

1、安装mock

方法一:pip安装

命令行直接输入:pip install mock

方法二:官网下载mock安装包安装

下载安装包后,解压,命令行进入解压目录,执行python setup.py install

 

2mock模拟返回值

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()

 

10-Mock模拟接口返回数据

标签:继承   响应   font   int   port   执行   end   main   pre   

原文地址:https://www.cnblogs.com/santiandayu/p/10016486.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!