MOOC(5)- mock模拟返回响应数据

时间:2023-03-09 21:50:12
MOOC(5)- mock模拟返回响应数据

1.安装mock

1)pip install mock

2)或者下载离线安装包

2.mock散装使用

import unittest
from mock import mock
from day_20200208_mooc.interface_request_class_5 import RunMain

class TestMethod(unittest.TestCase):
    def setUp(self):
        # 避免每个用例都去执行一次实例化
        self.run = RunMain()

    def test_01(self):
        url = ""
        data = ""
        # 把data作为mock.Mock的返回值
        mock_data = mock.Mock(return_value=data)
        # 把mock_data作为self.run.run_main方法的返回值
        self.run.run_main = mock_data
        res = self.run.run_main(url, "method", data)
        self.assertEqual(res["errorCode"], "期望值 ", "这是期望值和预期值不相等时给出的提示语")

if __name__ == "__main__":
    suite = unittest.TestSuite()
    # 添加测试用例
    suite.addTest(TestMethod("test_01"))
    runner = unittest.TextTestRunner()
    runner.run(suite)

  

3.封装mock进行调用

# 封装mock
import mock

def mock_test(mock_method, url, method, request_data, response_data):
    """

    :param mock_method: 封装的请求函数
    :param url: 请求URL
    :param method: 请求的方法 get post
    :param request_data: 请求的data
    :param response_data: 作为mock的返回数据
    :return:
    """
    mock_method = mock.Mock(return_value=response_data)
    res = mock_method(url, method, request_data)
    return res

  

import unittest
from mock import mock
from day_20200208_mooc.interface_request_class_5 import RunMain
from day_20200208_mooc.mock_demo_9 import mock_test

class TestMethod(unittest.TestCase):
    def setUp(self):
        # 避免每个用例都去执行一次实例化
        self.run = RunMain()

    def test_01(self):
        url = ""
        data = ""     # 封装后一行代码搞定
        res = mock_test(self.run.run_main, url, "method", request_data=data, response_data=data)
        self.assertEqual(res["errorCode"], "期望值 ", "这是期望值和预期值不相等时给出的提示语")