pythonmock測(cè)試的示例-創(chuàng)新互聯(lián)

mock總所周知是模擬的意思,我們?cè)谧鼋涌跍y(cè)試的時(shí)候有時(shí)候會(huì)發(fā)現(xiàn)部分功能依賴其他業(yè)務(wù)場(chǎng)景或者第三方功能或者是線上數(shù)據(jù)或者業(yè)務(wù)場(chǎng)景過(guò)于復(fù)雜(需要大量調(diào)用)的情況,沒(méi)有辦法通過(guò)接口調(diào)用或者做斷言,這個(gè)時(shí)候就需要mock了

創(chuàng)新互聯(lián)建站專注于成都網(wǎng)站建設(shè)、成都網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站制作、網(wǎng)站開(kāi)發(fā)。公司秉持“客戶至上,用心服務(wù)”的宗旨,從客戶的利益和觀點(diǎn)出發(fā),讓客戶在網(wǎng)絡(luò)營(yíng)銷中找到自己的駐足之地。尊重和關(guān)懷每一位客戶,用嚴(yán)謹(jǐn)?shù)膽B(tài)度對(duì)待客戶,用專業(yè)的服務(wù)創(chuàng)造價(jià)值,成為客戶值得信賴的朋友,為客戶解除后顧之憂。

python2中需要pip install mock來(lái)導(dǎo)入mock第三方模塊,而python3中被引入到unittest框架中,直接from unittest import mock 就可以導(dǎo)入mock模塊了

在單元測(cè)試中只針對(duì)當(dāng)前單元做測(cè)試,就是測(cè)試當(dāng)前方法或者是當(dāng)前類,但是如果出現(xiàn)這個(gè)方法依賴其他第三方模塊,那不是還要校驗(yàn)其他方法了嗎,那就違背了單元測(cè)試這個(gè)概念了,所有將外部依賴組件實(shí)現(xiàn)模擬并替換掉,使得單元測(cè)試的焦點(diǎn)放在自己身上

為了演示,用fastapi模擬了一個(gè)tx和ali的接口來(lái)調(diào)用作為單元測(cè)試,可以看到需要同時(shí)調(diào)用兩個(gè)接口才能完成單元測(cè)試

from unittest import TestCase, main, mock
import requests


class Request(object):
  def request_tx(self):
    tx_url = 'http://127.0.0.1:8000/tx'
    tx_data = {"a": 1, "b": 2}
    tx_result = requests.post(tx_url, json=tx_data)
    tx_result = tx_result.json()
    return tx_result

  def request_ali(self):
    ali_url = 'http://127.0.0.1:8000/ali'
    ali_data = {"c": 1, "d": 2}
    ali_result = requests.post(ali_url, json=ali_data)
    ali_result = ali_result.json()
    return ali_result


class Myproject(TestCase):
  def test_api(self):
    r = Request()
    ali_result = r.request_ali()
    tx_result = r.request_tx()
    self.assertEqual(int(ali_result['result']['all_add_value']) + int(tx_result['result']['all_add_value']), 6)

當(dāng)前標(biāo)題:pythonmock測(cè)試的示例-創(chuàng)新互聯(lián)
轉(zhuǎn)載注明:http://muchs.cn/article4/djheoe.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站策劃、做網(wǎng)站網(wǎng)站制作、電子商務(wù)、網(wǎng)站改版、全網(wǎng)營(yíng)銷推廣

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都網(wǎng)頁(yè)設(shè)計(jì)公司