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,从而可以在浏览器中运行测试我们的程 ...
随机推荐
- css秘密花园一
css秘密花园 1.透明边框 <style> div{ width: 120px; height: 60px; margin: 30px auto; background: pink; b ...
- js中的数组去掉空值
//result 是有空值的数组//r是处理好的数组var r = result.filter(function (s) { return s && s.trim();});
- 史上最全Java学习视频下载地址分享
http://blog.csdn.net/xlgen157387/article/details/39735141
- tomcat 启动日志乱码,idea中运行Tomcat也出现中文乱码:“淇℃伅”
打开到tomcat安装目录下的conf/文件夹 修改logging.properties文件, 找到 java.util.logging.ConsoleHandler.encoding = utf-8 ...
- constexpr
unsigned cnt = 10; string bad[cnt];//错误cnt不是常量表达式 constexpr unsigned cnt = 10; string bad[cnt];//正确
- visual studio中配置opencv
第1步附加包含目录:H:\software\programming\opencv\opencv\build\include 第2步附加库目录:H:\software\programming\openc ...
- redis-5.0.5 集群部署
之前写过一套基于redis-4.0.6版本的测试集群部署 https://www.cnblogs.com/mrice/p/10730309.html 最近生产环境需要部署一套redis-5.0.5版本 ...
- P4716 【模板】最小树形图
题意 说一下我对朱刘算法的理解: 首先我们考虑树形图的性质:每个点除了根节以外都含有一条入边. 因此我们可以有一个贪心的想法:对每个点(除了根节点)找到一条最短的入边,但是这样会出现环,如下图: 我们 ...
- java:集合输出之Iterator和ListIterator
在调用Iterator集合输出时,如果想要删除某个元素,请直接使用Iterator来判断元素是否存在然后再删除(next()当前指针内容,remove()删除当前内容 );如果在将集合丢给Iterat ...
- 大数减法(A - B Problem Plus)问题
解题思路 flagA为0表示A为正整数,为-1表示A为负整数: flagB为0表示B为正整数,为2表示B为负整数: 而 flag = flagA + flagB. 1.当 flag == 0 表示数A ...