国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

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

瀏覽:6日期:2022-07-18 13:06:27

一、mock是什么?

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

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

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

二、為什么要用mock?

舉例:

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

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

方法一:

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

缺點:

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

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

使用mock函數模擬即可。

三、mock應用

3.1 mock安裝

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

pip install mock

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

from unittest import mock

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

3.2 mock簡單舉例

from unittest import mockdef add(num1,num2): return num1 + num2 # passadd_value = mock.Mock(return_value=200) # 創建mock對象add = add_value # 把mock對象賦值給add方法print( add(10,20) )

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

3.3 mock應用舉例

import requestsdef send_request(url): r = requests.get(url) return r.status_codedef visit_newdream(): return send_request('http://www.hnxmxit.com/')print( visit_newdream() )

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

# 當前文件名為 mock_demo.pyimport unittestfrom unittest import mockimport requestsimport mock_demodef send_request(url): r = requests.get(url) return r.status_codedef 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的簡單應用,由于mock_demo.send_request = success_send 把mock對象賦值給了方法,使得方法再次調用的時候使用了mock的方法完成把模擬返回值傳遞給mock_demo.visit_newdream()方法。

四、小結

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

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Python 編程
相關文章:
主站蜘蛛池模板: 亚洲黄色成人 | 国产精品久久久久久久9999 | 久草手机在线观看 | 日韩欧美日本 | 午夜主播福利视频在线观看 | 久久99亚洲精品久久99 | 国产高清在线观看视频手机版 | 午夜性爽快免费视频播放 | 国产一级二级三级视频 | 色综合91久久精品中文字幕 | 黄页网站18以下禁止观看 | 欧美日韩偷拍自拍 | xoxoxoxo欧美性护士 | 毛片网站大全 | 男女那个视频免费 | 久久视频精品53在线观看 | 57pao强力打造手机版 | 美女又爽又黄视频 | 美女视频永久黄网站免费观看国产 | 日韩久久免费视频 | 欧美成 人h版在线观看 | 高h原耽肉汁动漫视频 | 成人五级毛片免费播放 | 久久福利资源网站免费看 | 成人国产在线24小时播放视频 | 日韩毛片欧美一级国产毛片 | 国产一级黄色网 | 国产精品7m凸凹视频分类大全 | 视频精品一区二区三区 | av中文字幕网免费观看 | 欧美中文字幕一区二区三区 | 欧美午夜精品一区二区三区 | 真实国产普通话对白乱子子伦视频 | 中文一区在线观看 | 精品欧美一区二区在线看片 | 国内自拍欧美 | 丝袜美腿在线不卡视频播放 | 亚洲在线视频一区 | 在线国产区 | 欧美三级在线观看视频 | 欧美日韩精品一区二区免费看 |