pthon之mock应用
研发过程中常见分工合作开发接口,但互相之间接口有依赖,这时候便可以使用mock
目录
1、安装
2、使用mock调试自己写的方法
3、使用mock解除依赖关系
1、安装
由于我的是python2.7,则使用pip install -U mock即可完成安装
2、使用mock调试自己写的方法
背景:写了一个求和方法sum,现在要测试
准备工作:demo.py中为demo类有一个sum方法,mock_demo.py用来测试自己写的sum方法
#demo.py
class Demo():
def sum(self,a,b):
return a+b 第一步:使用mock结果写好用例
#mock_demo.py
import mock
import unittest
from demo import Demo class McokDemo(unittest.TestCase)
def test_sum(self):
sum=Demo()
Demo.sum()= mock.Mock(return_value=13)
result=Demo.sum(1,2)
self.assertEqual(result,3)
if __name__='__main__':
unittest.main()
第二步:调用真实方法
#mock_demo.py
import mock
import unittest
from demo import Demo class McokDemo(unittest.TestCase)
def test_sum(self):
sum=Demo()
Demo.sum()= mock.Mock(side_effect=Demo.sum)
result=Demo.sum(1,2)
self.assertEqual(result,3)
if __name__='__main__':
unittest.main()
注意:side_effect参数,它给mock分配了可替换的结果,高于return_value
3、使用mock解除依赖关系
#demo
def se(self,a,b)
m=a+b
n=reduce(a,b)
return(m,n)
def reduce(self,a,b)
n=a-b #demo_mock
from mock import patch
import unittest
from demo import Demo class McokDemo(unittest.TestCase)
@patch("demo.reduce")
def test_se(self,mock_reduce):
a=3
b=2
mock_reduce.return_value=1
m,n=demo.Demo(x,y) self.assertEqual(5,m)
self.assertEqual(1,n) if __name__='__main__':
unittest.main()
@patch("demo.reduce"),这里模拟demo.py文件中reduce()函数. return_value设定mock_reduce函数的返回值为固定的1
pthon之mock应用的更多相关文章
- Pramp mock interview (4th practice): Matrix Spiral Print
March 16, 2016 Problem statement:Given a 2D array (matrix) named M, print all items of M in a spiral ...
- Google C++单元测试框架GoogleTest---Google Mock简介--概念及基础语法
就在昨天终于做了gtest的分享,我的预研工作终于结束了,感觉离我辞职的日子不远了,毕竟是专注java二百年啊,要告别实习啦.. 这篇是GoogleMock的简介文档,会在后边附带一个自己的例子. 一 ...
- Pramp - mock interview experience
Pramp - mock interview experience February 23, 2016 Read the article today from hackerRank blog on ...
- Spring Mock
今天看别人的测试代码,发现有 MockMvc.MockHttpServletRequest.MockHttpServletResponse ,不知道是干啥的,百度下下才知道 Mock这个东东. 下 ...
- Python mock
在测试过程中,为了更好地展开单元测试,mock一些数据跟对象在所难免,下面讲一下python的mock的简单用法. 关于python mock,网上有很多资料,这里不会讲的特别深,但一定会是实用为主, ...
- ABP中单元测试的技巧:Mock和数据驱动
(此文章同时发表在本人微信公众号"dotNET每日精华文章",欢迎右边二维码来关注.) 题记:虽然ABP为大家提供了测试的脚手架了,不过有些小技巧还是需要自己探索的. ASP.NE ...
- [转] 前后端分离开发模式的 mock 平台预研
引入 mock(模拟): 是在项目测试中,对项目外部或不容易获取的对象/接口,用一个虚拟的对象/接口来模拟,以便测试. 背景 前后端分离 前后端仅仅通过异步接口(AJAX/JSONP)来编程 前后端都 ...
- What's the difference between a stub and mock?
I believe the biggest distinction is that a stub you have already written with predetermined behavio ...
- Nova PhoneGap框架 第六章 使用Mock
在我们的框架中引入了一个很重要的设计,那就是使用Mock. 这里的mock是指cordova.mock.js文件,它模拟了PhoneGap(Cordova)的API,从而可以在浏览器中运行测试我们的程 ...
随机推荐
- Macrotask Queue和Microtask Quque
from:http://www.jianshu.com/p/3ed992529cfc setImmediate(function(){ console.log(1); },0); setTimeout ...
- 关于ES6的新特性
1 let声明变量 01 let声明的变量,不可重复声明,比如 let a=1 : let a=2 :这样申明会报错 02 let声明的变量,有块级作用域,比如 if( ){ ...
- Apache 的 http-default.conf 详解
##Apache 默认设置文件 Timeout 300 #设置服务器在断定请求失败前等待的秒数.默认值 300 KeepAlive Off #设置是否启用 HTTP 持久链接,On ...
- CentOS7编译安装MySQL8.0
1.下载mysql8.0.16源码包和cmake源码包 cd /usr/local/srcwget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-b ...
- springboot+HttpInvoke 实现RPC调用
开始用springboot2+hession4实现RPC服务时,发现第一个服务可以调用成功,但第二个就一直报 '<' is an unknown code.第一个服务还是可以调用的.参考网上的方 ...
- docker安装MySQL5.7示例!!坑
docker pull mysql 一.错误的启动 [root@localhost ~]# docker run ‐‐name mysql01 ‐d mysql 42f0981990 ...
- idea 2018版最新激活注册方法
1. 下载破解补丁文件,路径为:http://idea.lanyus.com/jar/JetbrainsCrack-2.7-release-str.jar 2.将补丁放在安装包的/bin路径下,如图中 ...
- MySQL/mariadb知识点总结
1.mysql/mariadb知识点总结:事务相关概念(事务总结-1) http://www.zsythink.net/archives/1204 2.mysql/mariadb知识点总结:事务控制语 ...
- heroinfo_set.all 函数
如果是 一对多 关系 即使用 heroinfo_set.all 此时关联字段类型通用,即上边的字段通用,但是需要添加many=True的参数heroinfo_set = serializers.Pr ...
- 使用 flex 弹性布局 ,相关教程记录
一.Flex布局是什么? Flex是Flexible Box的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性. 任何一个容器都可以指定为Flex布局. .box1{ dis ...