用PowerMockito来mock私有方法(转)
话说我们做的所谓的接口测试真的是不伦不类啊,测的是controller层,那叫接口木??!!可是老大们说写的是接口测试,那就接口吧!
自接手写这个接口测试不久,很多人,包括一个关系比较好的架构师就跟我说,写这个很麻烦啊,代码很乱,你得mock一堆。
既然已经跳进去了,那就游一会儿吧。为了mock,可谓想尽了办法啊,从一般的mock工具mockito,到java的反射,最后发现一个强大的工具——PowerMockito 他居然能够mock私有方法。虽然,最后被老大们说私有方法是不应该mock的,好吧,那我记录下总可以把,或许以后还是会用到呢。以下是一个例子:
//模拟 threadController的 doShowChildrens私有方法
val postCountOf24HourMap= new HashMap[String, Int]()
postCountOf24HourMap.put("1009",26)
postCountOf24HourMap.put("1010",90)
mav.addObject("postCountOf24HourMap", postCountOf24HourMap)
var childrensMap =new HashMap[String,ForumDynamicInfo]()
val forumDynamicInfo:ForumDynamicInfo = new ForumDynamicInfo
forumDynamicInfo.setRssCount(50) //设置关注数
childrensMap.put("1010",null)
childrensMap.put("1009",forumDynamicInfo)
mav.addObject("childrensMap",childrensMap)
var childrens = new LinkedList[Forum]()
val childForum = new Forum
childForum.setFid(1009)
childForum.setName("测试版块")
childForum.setDescription("记录下你的心情吧")
childForum.setIcon("http://www.icon.com/icon.jpg")
childForum.setIconUrl("http://www.19lou.com")
val moderator = new Moderator
moderator.setUserName("版主")
childForum.setModeratorList(List(moderator))
childrens.add(childForum)
mav.addObject("childrens",childrens)
PowerMockito.doReturn(mav).when(threadControllerSpy, "doShowChildrens",mav,forum);
http://blog.sina.com.cn/s/blog_6176c38201014dg1.html
用PowerMockito来mock私有方法(转)的更多相关文章
- 无所不能的PowerMock,mock私有方法,静态方法,测试私有方法,final类
1.为什么要用mock 我的一本书的解释: (1)创建所需的DB数据可能需要很长时间,如:调用别的接口,模拟很多数据 (2)调用第三方API接口,测试很慢, (3)编写满足所有外部依赖的测试可能很复杂 ...
- PowerMock mock私有方法
import java.util.Random; public class CodeWithPrivateMethod { public void meaningfulPublicApi() { if ...
- 使用PowerMockito和Mockito进行模拟测试,包括静态方法测试,私有方法测试等,以及方法执行的坑或者模拟不成功解决
依赖:这个很重要,不同版本用法也有点区别: <dependency> <groupId>org.mockito</groupId> <artifactId&g ...
- powermockito “mock public 方法内部 Private方法的问题”
我需要测试的方法是 public 方法: public ResponseResult subscribe(SysSubscription sysSubscription) throws JsonGen ...
- mock static方法
<dependency> <groupId>org.powermock</groupId> <artifactId>powermock-api-mock ...
- iOS 私有变量 私有方法
实例变量既可以在@interface中定义 也可以在@implementation中定义 在@implementation中的成员变量默认是私有的成员变量 并且和利用@private修饰的不太一样 在 ...
- iOS 运行时runtime控制私有变量以及私有方法
OC是运行时语言,只有在程序运行时,才会去确定对象的类型,并调用类与对象相应的方法.利用runtime机制让我们可以在程序运行时动态修改类.对象中的所有属性.方法,就算是私有方法以及私有属性都是可以动 ...
- 从vs2010的UnitTestFramework类库提取私有方法反射调用的方法
背景 年龄大点的程序员都知道在vs2010中创建单元测试非常的简单,鼠标定位在方法名字,右键创建单元测试,就会创建一个测试方法,即使是在私有方法上也可以创建测试方法. VS2010以后就没这么简单了, ...
- 【原】iOS动态性(二):运行时runtime初探(强制获取并修改私有变量,强制增加及修改私有方法等)
OC是运行时语言,只有在程序运行时,才会去确定对象的类型,并调用类与对象相应的方法.利用runtime机制让我们可以在程序运行时动态修改类.对象中的所有属性.方法,就算是私有方法以及私有属性都是可以动 ...
随机推荐
- MBProgressHUD简单使用
使用HUD最多的情形用于请求等待提示 例如做登录的时候在确认登陆的时候可以用HUD提示正在登陆. 最基本的使用 初始化 //self.view代表在哪个view中显示hud MBProgressHUD ...
- 从开发到部署,使用django创建一个简单可用的个人博客
本文参考于: 简书-Django搭建简易博客教程:http://www.jianshu.com/p/d15188a74104 自强学堂-Django基础教程:http://www.ziqiangxue ...
- python实现单向链表
#Definition for singly-linked list. class ListNode(object): def __init__(self, x): self.val = x self ...
- 链接分析算法之:SALSA算法
链接分析算法之:SALSA算法 SALSA算法的初衷希望能够结合PageRank和HITS算法两者的主要特点,既可以利用HITS算法与查询相关的特点,也可以采纳PageRank的“随机游走模型”,这是 ...
- bespoke_百度百科
bespoke_百度百科 bespoke
- Oracle 11g RAC 环境下单实例非缺省监听及端口配置
如果在Oracle 11g RAC环境下使用dbca创建单实例数据库后,Oracle会自动将其注册到缺省的1521端口及监听器.大多数情况下我们使用的为非缺省监听器以及非缺省的监听端口.而且在Orac ...
- 将vs屏幕上内容重定向到一个log文本中
在需要打印的屏幕内容前面加上一句话: freopen("debug.txt","w",stdout); 结束部分关掉他: fclose(stdout); 参考 ...
- 【QT相关】Qt Widgets Module
Qt Widgets Module:提供了一些列UI元素. 使用: //头文件包含 #include <QtWidgets> //链接模式,在.pro文件中添加行: QT += widge ...
- Android 中 ListView 常用属性合集
class ListView.FixedViewInfo//用来在列表内展现一个固定位置视图,如在列表顶端的header和在列表底端的footer 一.XML属性 1.ListView的XML属性 a ...
- Pyton——int内部功能介绍
int内部功能详解: class int(object): """ int(x=0) -> integer int(x, base=10) -> intege ...