• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
😊三天打鱼😊
博客园    首页    新随笔    联系   管理    订阅  订阅

10-Mock模拟接口返回数据

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

 

posted @ 2018-11-25 18:00  😊三天打鱼😊  阅读(898)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3