最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python Mock模塊原理及使用方法詳解

 更新時間:2020年07月07日 15:38:12   作者:藍 寅  
這篇文章主要介紹了Python Mock模塊原理及使用方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下

一、mock是什么?

英譯中含義有:虛假的; 不誠實的; 模仿的; 模擬的 這個意思

這個庫的主要功能就是模擬一些事務(wù)

官方解釋:Mock是Python中一個用于支持單元測試的庫,它的主要功能是使用mock對象替代掉指定的Python對象,以達到模擬對象的行為

二、為什么要用mock?

舉例:

假設(shè)你開發(fā)一個項目,里面包含了一個登錄模塊,登錄模塊需要調(diào)用身份證驗證模塊中的認證函數(shù),該認證函數(shù)會進行值的返回,然后系統(tǒng)根據(jù)這個返回值來做判斷是否能進行登錄。但是身份證驗證模塊中的認證函數(shù)只有在正式上線的系統(tǒng)上才提供。公司內(nèi)部的測試環(huán)境或者開發(fā)環(huán)境上不提供。

如果此時需要進行登錄模塊的業(yè)務(wù)測試或接口測試,該如何做?

方法一:

搭建一個測試服務(wù)器,在測試的時候,讓認證函數(shù)和這個測試服務(wù)器交互,返回值給登錄模塊;

缺點:

1、測試服務(wù)器可能不好搭建,或者搭建效率很低;

2、搭建的測試服務(wù)器可能無法返回所有可能的值,或者需要大量的工作才能達到這個目的。
方法二:

使用mock函數(shù)模擬即可。

三、mock應(yīng)用

3.1 mock安裝

在Python 3.3以前的版本中,需要另外安裝mock模塊,可以使用pip命令來安裝:

pip install mock

從Python 3.3開始,mock模塊已經(jīng)被合并到標準庫中,被命名為unittest.mock,可以直接import進來使用:

from unittest import mock

備注:目前Python 3.3之后的版本,也可以使用第一種方式應(yīng)用mock

3.2 mock簡單舉例

from unittest import mock
def add(num1,num2):
  return num1 + num2  # pass

add_value = mock.Mock(return_value=200) # 創(chuàng)建mock對象
add = add_value # 把mock對象賦值給add方法

print( add(10,20) )

從上述代碼執(zhí)行可以看出,假使我把add()方法的實現(xiàn)改為pass,暫時還未實現(xiàn),也可以通過mock先返回所需要的數(shù)據(jù)。

3.3 mock應(yīng)用舉例

import requests
def send_request(url):
  r = requests.get(url)
  return r.status_code

def visit_newdream():
  return send_request("http://www.hnxmxit.com/")

print( visit_newdream() )

上述代碼是訪問我們公司的官網(wǎng),假設(shè)該官網(wǎng)訪問請求還沒被實現(xiàn),此時 visit_newdream() 方法需要 send_request 返回響應(yīng)狀態(tài)碼。這個時候可以用到mock。

# 當前文件名為 mock_demo.py
import unittest
from unittest import mock
import requests
import mock_demo

def send_request(url):
  r = requests.get(url)
  return r.status_code

def visit_newdream():
  return send_request("http://www.hnxmxit.com/")

class TestClient(unittest.TestCase):
  def test_success_request(self):
    success_send = mock.Mock(return_value='200')
    mock_demo.send_request = success_send
    self.assertEqual(mock_demo.visit_newdream(), '200')

if __name__=="__main__":
  unittest.main()

上述代碼完成了mock的簡單應(yīng)用,由于mock_demo.send_request = success_send 把mock對象賦值給了方法,使得方法再次調(diào)用的時候使用了mock的方法完成把模擬返回值傳遞給mock_demo.visit_newdream()方法。

四、小結(jié)

  • 此文基礎(chǔ)的介紹了mock的入門;
  • 讀者實操出來有一定的想法后完全可以應(yīng)用到接口測試和單元測試過程中去。

以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • 詳解Python中用于計算指數(shù)的exp()方法

    詳解Python中用于計算指數(shù)的exp()方法

    這篇文章主要介紹了詳解Python中用于計算指數(shù)的exp()方法,是Python入門中必會的基本方法,需要的朋友可以參考下
    2015-05-05
  • 使用Python的Twisted框架編寫非阻塞程序的代碼示例

    使用Python的Twisted框架編寫非阻塞程序的代碼示例

    Twisted是基于異步模式的開發(fā)框架,因而利用Twisted進行非阻塞編程自然也是必會的用法,下面我們就來一起看一下使用Python的Twisted框架編寫非阻塞程序的代碼示例:
    2016-05-05
  • 基于python實現(xiàn)藍牙通信代碼實例

    基于python實現(xiàn)藍牙通信代碼實例

    這篇文章主要介紹了基于python實現(xiàn)藍牙通信代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-11-11
  • Keras load_model 導入錯誤的解決方式

    Keras load_model 導入錯誤的解決方式

    這篇文章主要介紹了Keras load_model 導入錯誤的解決方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • Python計算庫numpy進行方差/標準方差/樣本標準方差/協(xié)方差的計算

    Python計算庫numpy進行方差/標準方差/樣本標準方差/協(xié)方差的計算

    今天小編就為大家分享一篇關(guān)于Python計算庫numpy進行方差/標準方差/樣本標準方差/協(xié)方差的計算,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • 查看keras的默認backend實現(xiàn)方式

    查看keras的默認backend實現(xiàn)方式

    這篇文章主要介紹了查看keras的默認backend實現(xiàn)方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-06-06
  • Python中的類屬性與實例屬性的區(qū)別和用法

    Python中的類屬性與實例屬性的區(qū)別和用法

    在Python中,類屬性和實例屬性是面向?qū)ο缶幊痰暮诵母拍钪?它們允許存儲和管理對象的數(shù)據(jù),并影響對象的行為,本篇文章中,會學習到類屬性和實例屬性的概念、區(qū)別以及如何在Python中使用它們,同時提供大量的示例代碼來更好地理解它們的作用和用法,需要的朋友可以參考下
    2023-11-11
  • 代碼講解Python對Windows服務(wù)進行監(jiān)控

    代碼講解Python對Windows服務(wù)進行監(jiān)控

    本篇文章給大家分享了通過Python對Windows服務(wù)進行監(jiān)控的實例代碼,對此有興趣的朋友可以學習參考下。
    2018-02-02
  • scipy.interpolate插值方法實例講解

    scipy.interpolate插值方法實例講解

    這篇文章主要介紹了scipy.interpolate插值方法介紹,本文結(jié)合實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-12-12
  • Python入門篇之函數(shù)

    Python入門篇之函數(shù)

    本篇文章將介紹如何將語句組織成函數(shù),以及參數(shù)概念以及在程序中的用途,需要的朋友可以參考下
    2014-10-10

最新評論

茂名市| 永寿县| 平舆县| 延寿县| 大同市| 德庆县| 囊谦县| 磐安县| 东港市| 高雄县| 梁山县| 巴林左旗| 民县| 卫辉市| 澄迈县| 宁明县| 开江县| 玉树县| 天全县| 长治市| 佛坪县| 广元市| 东海县| 九龙县| 郧西县| 绥芬河市| 灵寿县| 临泽县| 岚皋县| 抚顺县| 化隆| 南乐县| 锡林郭勒盟| 中超| 武邑县| 广东省| 河源市| 隆德县| 垦利县| 翁源县| 通江县|