参考文章:

版权声明

您的支持是对博主最大的鼓励,感谢您的认真阅读

本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明, 且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

作者: 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相关推荐

  1. 视频教程-快速入门Python基础教程_Python基础知识大全-Python

    快速入门Python基础教程_Python基础知识大全 十余年计算机技术领域从业经验,在中国电信.盛大游戏等多家五百强企业任职技术开发指导顾问,国内IT技术发展奠基人之一. 杨千锋 ¥99.00 立即 ...

  2. python教程是什么-Python基础教程_Python入门知识

    Python基础教程频道为编程初学者提供入门前的所有基础知识,必须要掌握的一些PYTHON基础语法语句,基本的数据类型. 让大家可以更快速.更容易理解的的方式掌握Python编程所需要的基础知识,灵活 ...

  3. python的基础_python基础知识,python必背内容,一、python的基

    python基础知识,python必背内容,一.python的基 一.python的基础 1.简单写一行python代码:print('hello,world')print('你好,北京') 2.变量 ...

  4. python基础教程是什么-Python基础教程_Python入门知识

    Python基础教程频道为编程初学者提供入门前的所有基础知识,必须要掌握的一些PYTHON基础语法语句,基本的数据类型. 让大家可以更快速.更容易理解的的方式掌握Python编程所需要的基础知识,灵活 ...

  5. python支付宝支付_python 调用支付宝支付

    支付宝接口集成,本地环境调试支付请求 1.首先登录 蚂蚁金服网站,也就是支付宝开发者平台 登录蚂蚁金服开发者平台后,创建沙箱应用 开发者平台 也就是支付宝给开发者提供的调试环境应用 沙箱测试应用 2. ...

  6. python数学知识点_python基础知识整理

    序言:本文简单介绍python基础知识的一些重要知识点,用于总结复习,每个知识点的具体用法会在后面的博客中一一补充 2. 程序: 一组计算机能识别和执行的指令,是实现某种需求的软件. 3. 操作系统: ...

  7. python发音方法_Python基础知识之一

    一.Python的安装 Windows下: 1.下载安装包 https://www.python.org/downloads/ 2.安装 默认安装路径:C:\python27 3.配置环境变量 [右键 ...

  8. python基础汇总_Python基础知识汇总

    Python全局变量的使用方法 应该尽量避免使用全局变量.不同的模块都可以自由的访问全局变量,可能会导致全局变量的不可预知性.对全局变量,如果程序员甲修改了_a的值,程序员乙同时也要使用_a,这时可能 ...

  9. python截取逗号_Python基础知识: 元组

    Python的元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号,列表使用方括号. 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可. 如下实例: tup1 = ('physi ...

最新文章

  1. Gamma阶段第一次scrum meeting
  2. 计算机视觉:你必须了解的图像数据底层技术
  3. 套接字没有连接并且没有提供地址_网络是怎样连接的 -- web服务器接到请求后将会做什么...
  4. 【级数】【马尔科夫链】n乘以x的n次方的和函数
  5. 如何用python“优雅的”调用有道翻译
  6. Image、Byte[]、Bitmap相互转换
  7. 基于JAVA+SpringBoot+Mybatis+MYSQL的家庭财务管理系统
  8. 静态网站生成器将会成为下一个大热门
  9. solr5.0mysql_solr5.5.4 添加mysql数据,实现同步更新
  10. wsdl2java maven_maven wsdl2java配置无法正常工作
  11. html5 video play方法,html5 – 如何在现代Chrome上访问video.play()API
  12. STM32F401RE Nucleo 在 keil MDK上的使用
  13. 李宏毅(2020)作业2-hw2_classification
  14. 例题4-6 师兄帮帮忙(A Typical Homework (a.k.a Shi Xiong Bang Bang Mang),Rujia Liu's Present 5, UVa 12412)
  15. 迭代最小二乘拟合椭圆
  16. 预防跌倒-笑做“不倒翁”
  17. 熬了整整30天,搭建kafka服务器centos8
  18. 力扣解法汇总2043-简易银行系统
  19. 英语和汉语语法方面的区别(语言类型学)
  20. SE 的 ONNX 图

热门文章

  1. 有一个写代码很厉害的老板是怎样一种体验?
  2. 2020年接近尾声,我选择来鲲鹏开发者技术峰会学点干货!
  3. CPU究竟是如何执行任务的?
  4. 中国首家苹果零售店重开业,苹果CEO库克发文揭幕;“携号转网”服务用户破千万;GitHub 完成北极源代码存档|极客头条...
  5. 深度解读 | ElasticDL 深度学习框架简化编程,提升集群利用率和研发效率的秘诀...
  6. 使用虚幻引擎 4 年,网络架构大揭秘
  7. GitHub 一周热点速览:前后端最佳实践
  8. 微信小范围上线“分付”功能;罗永浩宣布独家签约抖音;Github pages 可能遭遇中间人攻击 | 极客头条...
  9. 华为最新 5G 折叠机 MateXs 发布,起售价 19000 多元
  10. 代码视角深入浅出理解 DevOps | 原力计划