安裝
pip install mock
pip install pytest-mock
例項第三方介面 payment.py
#coding = utf-8
import
requests
class payment: #
支付類def
requestoutofsystem(self, card_num, amount):
'''請求第三方外部支付介面,並返回響應碼
:param card_num:
:param amount:
:return: 返回狀態碼,200 代表支付成功,500 代表支付異常失敗
'''print('
呼叫第三方介面~~~~~~')
url = "
"#第三方支付介面請求位址
data = #
請求引數
response = requests.post(url, data=data)
return response.status_code #
返回狀態碼
defdopay(self, user_id, card_num, amount):
'''支付
:param userid: 使用者id
:param card_num: 卡號
:param amount: 支付金額
:return:
'''try
:
#呼叫第三方支付介面請求進行真實扣款
resp =self.requestoutofsystem(card_num, amount)
print('
呼叫第三方支付介面返回結果:
', resp)
#except timeouterror:
## 如果超時就重新呼叫一次
#print('重試一次~~~~')
#resp = self.requestoutofsystem(card_num, amount)
except
: resp =self.requestoutofsystem(card_num, amount)
print('
呼叫第三方支付介面返回結果:
', resp)
if resp == 200: #
返回第三方支付成功,則進行系統裡面的扣款並記錄支付記錄等操作
print("
支付成功!!!進行扣款並記錄支付記錄
".format(user_id, amount))
return
'success
'elif resp == 500: #
返回第三方支付失敗,則不進行扣款
print("
支付失敗!!不進行扣款!!!
".format(user_id, amount))
return
'fail
'
介面用例
#!/usr/bin/env python
#-*- coding:utf-8 -*-
#@time : 2021/1/10 17:34
#@author : asus
#@file : xiaoming.py
#@software: pycharm community edition
import
pytest
import
payment
import
mock
class
testdemomork:
deftest_success(self,mocker):
"""測試支付成功
:return:
"""pay =payment.payment()
pay.requestoutofsystem=mocker.patch('
payment.payment.requestoutofsystem
',return_value=200) #
mock第三方介面.寫路徑和返回值
#第二種寫法
#pay.requestoutofsystem=mocker.patch.object(payment.payment,'requestoutofsystem',return_value=200) #mock第三方介面
resp = pay.dopay(user_id=1, card_num="
439019098
", amount=200)
print("
這是執行結果:{}
".format(resp))
assert resp=='
success'#
if __name__ == '__main__':
#pytest.main(["-s","test_demo1.py::testdemomork::test_success"])
gdb 除錯例項
一 gdb 除錯段錯誤 1 編寫 vim segfault.c include int main char buf buf hello,world retrun 1 2 編譯 gcc g segfault.c lsa.out segfault.c 3 除錯 a.out segmentation fa...
GDB除錯精粹及使用例項
gdb除錯精粹及使用例項 一 列檔案清單 1 list gdb list line1,line2 二 執行程式 要想執行準備除錯的程式,可使用run命令,在它後面可以跟隨發給該程式的任何引數,包括標準輸入和標準輸出說明符 和外殼萬用字元 在內。如果你使用不帶引數的run命令,gdb就再次使用你給予前...
GDB除錯精粹及使用例項
一 列檔案清單 1 list gdb list line1,line2 二 執行程式 要想執行準備除錯的程式,可使用run命令,在它後面可以跟隨發給該程式的任何引數,包括標準輸入和標準輸出說明符 和外殼萬用字元 在內。如果你使用不帶引數的run命令,gdb就再次使用你給予前一條run命令的引數,這是...