zoukankan      html  css  js  c++  java
  • mock的使用-解决接口依赖问题

    参考:https://www.jianshu.com/p/15594044ab27

    pip install mock
    pip install pytest-mock   (相当于mock的升级版)

    举例:

    # 文件路径:common/mock_demo.py
    import requests
    
    
    def mock_request(url):
        """需要被mock的请求"""
        return requests.get(url).status_code
    
    
    def invoke_mock_request(url):
        return mock_request(url)

     测试用例

    import mock
    from pytest_mock import mocker
    from common.mock_demo import invoke_mock_request
    
    
    def test_mock_1(mocker):
        """方法一:使用的是pytest-mock 中的mocker"""
        mocker.patch("common.mock_demo.mock_request", return_value=300)    # 被mock请求函数的路径一定要写对
        assert invoke_mock_request("https://www.baidu.com/") == 300
    
    
    def test_mock_2():
        """方法二:使用的 mock 中patch方法"""
        with mock.patch("common.mock_demo.mock_request", return_value=300) as foo:
            assert invoke_mock_request("https://www.baidu.com/") == foo.return_value
    
    
    @mock.patch("common.mock_demo.mock_request", return_value=300)
    def test_mock_3(mock_request):
        """方法三:使用的装饰器的方式对mock对象的函数返回值进行替换"""
        assert invoke_mock_request("https://www.baidu.com/") == mock_request.return_value

    即:在调用 invoke_mock_request() 之前先对其接口依赖的 mock_request() 方法的返回值可以替换,这样的话不管其方法的返回值如何变化,我们只需要关注此次 mock 即可

  • 相关阅读:
    HIHO线段树(成段)
    HIHO 线段树(单点)
    POJ 3468
    HDU 1754
    HDU 1698
    HDU 5119
    HDU 1394
    HDU 1166
    DZY Loves Chessboard
    谷歌Cookies无法写入
  • 原文地址:https://www.cnblogs.com/wang-mengmeng/p/12602023.html
Copyright © 2011-2022 走看看