python mock支付_python mock知识03
参考文章:
版权声明
您的支持是对博主最大的鼓励,感谢您的认真阅读
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明, 且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
作者: Linux超
mock作用
1. 解决依赖问题:当我们测试一个接口或者功能模块的时候,如果这个接口或者功能模块依赖其他接口或其他模块,那么如果所依赖的接口或功能模块未开发完毕,那么我们就可以
使用mock模拟被依赖接口,完成目标接口的测试
2. 单元测试:如果某个功能未开发完成,我们又要进行测试用例的代码编写,我们也可以先模拟这个功能进行测试
3. 模拟复杂业务的接口:实际工作中如果我们在测试一个接口功能时,如果这个接口依赖一个非常复杂的接口业务,那么我们完全可以使用mock来模拟这个复杂的业务接口,其实
这个和解决接口依赖是一样的原理
4.前后端联调:如果你是一个前端页面开发,现在需要开发一个功能:根据后台返回的状态展示不同的页面,那么你就需要调用后台的接口,但是后台接口还未开发完成,是不是你
就停止这部分工作呢?答案是否定的,你完全可以借助mock来模拟后台这个接口返回你想要的数据
mock官方文档地址:
https://docs.python.org/3/library/unittest.mock.html#the-patchers
关于@patch.object()的用法截图如下:
实现代码如下:文件名:test_03.py
import requests
import unittest
from mock import patch
class PayApi():
@staticmethod
def auth(card,amount):
pay_url = "http:moni.com"
data = {"card":card,"amount":amount}
response = requests.post(pay_url,data = data)
return response
def pay(self,user_id,card,amount):
response = self.auth(card,amount)
try:
if response['status_code'] == '200':
print("用户{}支付金额{}成功".format(user_id,amount))
return "支付成功"
elif response['status_code'] == '500':
print("用户{}支付失败,金额不变".format(user_id))
return "支付失败"
else:
return "未知错误"
except Exception:
return "Error, 服务器异常!"
class TestPayApi(unittest.TestCase):
def setUp(self):
self.pay = PayApi()
def tearDown(self):
pass
# @mock.patch("test_03.PayApi")
@patch.object(PayApi,'auth')
def test_success(self,mock_auth):
mock_auth.return_value = {'status_code':'200'}
statusmsg = self.pay.pay('1000','12345','10000')
self.assertEqual(statusmsg,'支付成功')
@patch.object(PayApi,'auth')
def test_fail(self,mock_auth):
mock_auth.return_value = {'status_code':'500'}
statusmsg = self.pay.pay('jsdn','6222xxx','10000')
self.assertEqual(statusmsg,'支付失败')
@patch.object(PayApi,'auth')
def test_error(self,mock_auth):
mock_auth.return_value = {'status_code':'300'}
statusmsg = self.pay.pay('jsdn', '6222xxx', '20000')
self.assertEqual(statusmsg,'未知错误')
@patch.object(PayApi, 'auth')
def test_exception(self, mock_auth):
mock_auth.return_value = {'status_codeq':'300'}
statusmsg = self.pay.pay('jsdn', '6222xxx', '20000')
self.assertEqual(statusmsg, 'Error, 服务器异常!')
if __name__ == '__main__':
unittest.main(verbosity=2)
运行结果如下:
python mock支付_python mock知识03相关推荐
- 视频教程-快速入门Python基础教程_Python基础知识大全-Python
快速入门Python基础教程_Python基础知识大全 十余年计算机技术领域从业经验,在中国电信.盛大游戏等多家五百强企业任职技术开发指导顾问,国内IT技术发展奠基人之一. 杨千锋 ¥99.00 立即 ...
- python教程是什么-Python基础教程_Python入门知识
Python基础教程频道为编程初学者提供入门前的所有基础知识,必须要掌握的一些PYTHON基础语法语句,基本的数据类型. 让大家可以更快速.更容易理解的的方式掌握Python编程所需要的基础知识,灵活 ...
- python的基础_python基础知识,python必背内容,一、python的基
python基础知识,python必背内容,一.python的基 一.python的基础 1.简单写一行python代码:print('hello,world')print('你好,北京') 2.变量 ...
- python基础教程是什么-Python基础教程_Python入门知识
Python基础教程频道为编程初学者提供入门前的所有基础知识,必须要掌握的一些PYTHON基础语法语句,基本的数据类型. 让大家可以更快速.更容易理解的的方式掌握Python编程所需要的基础知识,灵活 ...
- python支付宝支付_python 调用支付宝支付
支付宝接口集成,本地环境调试支付请求 1.首先登录 蚂蚁金服网站,也就是支付宝开发者平台 登录蚂蚁金服开发者平台后,创建沙箱应用 开发者平台 也就是支付宝给开发者提供的调试环境应用 沙箱测试应用 2. ...
- python数学知识点_python基础知识整理
序言:本文简单介绍python基础知识的一些重要知识点,用于总结复习,每个知识点的具体用法会在后面的博客中一一补充 2. 程序: 一组计算机能识别和执行的指令,是实现某种需求的软件. 3. 操作系统: ...
- python发音方法_Python基础知识之一
一.Python的安装 Windows下: 1.下载安装包 https://www.python.org/downloads/ 2.安装 默认安装路径:C:\python27 3.配置环境变量 [右键 ...
- python基础汇总_Python基础知识汇总
Python全局变量的使用方法 应该尽量避免使用全局变量.不同的模块都可以自由的访问全局变量,可能会导致全局变量的不可预知性.对全局变量,如果程序员甲修改了_a的值,程序员乙同时也要使用_a,这时可能 ...
- python截取逗号_Python基础知识: 元组
Python的元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号,列表使用方括号. 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可. 如下实例: tup1 = ('physi ...
最新文章
- Gamma阶段第一次scrum meeting
- 计算机视觉:你必须了解的图像数据底层技术
- 套接字没有连接并且没有提供地址_网络是怎样连接的 -- web服务器接到请求后将会做什么...
- 【级数】【马尔科夫链】n乘以x的n次方的和函数
- 如何用python“优雅的”调用有道翻译
- Image、Byte[]、Bitmap相互转换
- 基于JAVA+SpringBoot+Mybatis+MYSQL的家庭财务管理系统
- 静态网站生成器将会成为下一个大热门
- solr5.0mysql_solr5.5.4 添加mysql数据,实现同步更新
- wsdl2java maven_maven wsdl2java配置无法正常工作
- html5 video play方法,html5 – 如何在现代Chrome上访问video.play()API
- STM32F401RE Nucleo 在 keil MDK上的使用
- 李宏毅(2020)作业2-hw2_classification
- 例题4-6 师兄帮帮忙(A Typical Homework (a.k.a Shi Xiong Bang Bang Mang),Rujia Liu's Present 5, UVa 12412)
- 迭代最小二乘拟合椭圆
- 预防跌倒-笑做“不倒翁”
- 熬了整整30天,搭建kafka服务器centos8
- 力扣解法汇总2043-简易银行系统
- 英语和汉语语法方面的区别(语言类型学)
- SE 的 ONNX 图
热门文章
- 有一个写代码很厉害的老板是怎样一种体验?
- 2020年接近尾声,我选择来鲲鹏开发者技术峰会学点干货!
- CPU究竟是如何执行任务的?
- 中国首家苹果零售店重开业,苹果CEO库克发文揭幕;“携号转网”服务用户破千万;GitHub 完成北极源代码存档|极客头条...
- 深度解读 | ElasticDL 深度学习框架简化编程,提升集群利用率和研发效率的秘诀...
- 使用虚幻引擎 4 年,网络架构大揭秘
- GitHub 一周热点速览:前后端最佳实践
- 微信小范围上线“分付”功能;罗永浩宣布独家签约抖音;Github pages 可能遭遇中间人攻击 | 极客头条...
- 华为最新 5G 折叠机 MateXs 发布,起售价 19000 多元
- 代码视角深入浅出理解 DevOps | 原力计划