easymock所测试的方法内部新NEW对象的处理
问题:当记录的方法的参数是方法所在类内部新NEW的对象时,静态的记录方法交互就会失效,例如
调用的方法:
public calss A{
    public void method(User u){
         u.setUsername("admin");
    }
}
交互类:
public class B{
    private A a;
    public B(A a){
        this.a = a
    }
    public void methodB(){
        User user = new User();
        a.method(user);
    }
}    
测试类:
public class test{
    @Test
    public void testMethodB(){
        IMocksControl mc = EasyMokc.createStrictControl();
        A a = mc.createMock(A.class);
        B b = new B(a);
        User u = new User();
        a.method(u);
        mc.replay();
        b.methodB();
        mc.verify();
    }
}
解决方法:通过easymock自带的动态参数的方法来与记录方法交互。
public class test{
    @Test
    public void testMethodB(){
        IMocksControl mc = EasyMokc.createStrictControl();
        A a = mc.createMock(A.class);
        B b = new B(a);
        /* //原方式
        User u = new User();
        a.method(u);*/
        //动态参数
        a.method(EasyMock.anyObject());
        mc.replay();
        b.methodB();
        mc.verify();
    }
}
easymock所测试的方法内部新NEW对象的处理的更多相关文章
- Java方法传参,测试在方法内部改变参数内容是否会影响到原值
		我分了三种类型的参数进行测试 一.基本类型 public static void main(String[] args) { System.out.println("验证基本类型int作为参 ... 
- [bug]spring项目通过反射测试私有方法时,注入对象异常
		背景 遇到问题:在进行Spring单元测试编写时,发现被测方法是一个私有方法,无法直接通过注入对象调用 解决思路:首先想到通过反射获取该私有方法的访问权限,并传入注入对象,最终调用对象的私有方法. 出 ... 
- Nmap渗透测试使用方法
		Nmap渗透测试使用方法 目标选择2 端口选择2 操作系统和服务检测2 Nmap输出格式2 用NSE脚本深入挖掘2 HTTP服务信息3 检测SSL漏洞问题的主机3 设备扫描3 按VNC扫描5 按SMB ... 
- 无所不能的PowerMock,mock私有方法,静态方法,测试私有方法,final类
		1.为什么要用mock 我的一本书的解释: (1)创建所需的DB数据可能需要很长时间,如:调用别的接口,模拟很多数据 (2)调用第三方API接口,测试很慢, (3)编写满足所有外部依赖的测试可能很复杂 ... 
- centos   LB负载均衡集群 三种模式区别 LVS/NAT 配置  LVS/DR 配置  LVS/DR + keepalived配置  nginx ip_hash 实现长连接  LVS是四层LB  注意down掉网卡的方法  nginx效率没有LVS高  ipvsadm命令集  测试LVS方法 第三十三节课
		centos LB负载均衡集群 三种模式区别 LVS/NAT 配置 LVS/DR 配置 LVS/DR + keepalived配置 nginx ip_hash 实现长连接 LVS是四层LB ... 
- Go 测试单个方法/性能测试
		Go 测试单个方法 gotest.go package mytest import ( "errors" ) func Division(a, b float64) (float6 ... 
- 测试模式 windows2008 内部版本7601
		win server 2008 r2 enterprise 64位系统. 最近手贱,对服务器进行了一下更新,结果傻叉了,这是什么鬼,明明显示已经激活的,但就是有这么一串碍眼的字幕. 电脑右下角居然出现 ... 
- iOS中的过期方法和新的替代方法
		关于iOS中的过期方法和新的替代方法 1.获取某些类的UINavigationBar的统一外观并设置UINavigationbar的背景 注:方法名改了但是基本使用方法不变 + (instancety ... 
- powermockito “mock public 方法内部 Private方法的问题”
		我需要测试的方法是 public 方法: public ResponseResult subscribe(SysSubscription sysSubscription) throws JsonGen ... 
随机推荐
- Hadoop: Hadoop Cluster配置文件
			Hadoop配置文件 Hadoop的配置文件: 只读的默认配置文件:core-default.xml, hdfs-default.xml, yarn-default.xml 和 mapred-defa ... 
- MyBatis学习教程
			http://www.yihaomen.com/article/java/302.htm http://www.yihaomen.com/article/java/303.htm http://www ... 
- jeesz源码下载
			大型分布式企业架构 jeesz,百度去搜索jeesz 
- 如何通过cmd检查自己电脑是否安装了oracle
			随便一个oracle命令,例如imp,如果提示输入用户名,就表示安装了oracle 1.直接运行sqlplus,然后要求输入用户名和密码.如果你是管理员的身份,应该在用户名后加as sysdba(以下 ... 
- mysql explain执行计划详解
			1).id列数字越大越先执行,如果说数字一样大,那么就从上往下依次执行,id列为null的就表是这是一个结果集,不需要使用它来进行查询. 2).select_type列常见的有: A:simp ... 
- php如何在某个时间上加一天?一小时? 时间加减
			<?php date_default_timezone_set('PRC'); //默认时区 echo "今天:",date("Y-m-d",time() ... 
- java 入门学习
			想要学习java,首先你要明白java是干嘛的,它有什么吸引之处,懂程序的都应该知道,java是很多计算机语言的根本,无论在什么时代,科技如何更新,java都不会落后,现在的我在学习初级java,下面 ... 
- Fragment全解析系列(一):那些年踩过的坑
			开始之前 最新版知乎,单Activity多Fragment的架构,响应可以说非常"丝滑",非要说缺点的话,就是没有转场动画,并且转场会有类似闪屏现象.我猜测可能和Fragment转 ... 
- 在Excel中制作复合饼图
			在Excel中插入饼图时有时会遇到这种情况,饼图中的一些数值具有较小的百分比,将其放到同一个饼图中难以看清这些数据,这时使用复合条饼图就可以提高小百分比的可读性. 文中的复合饼图只是方便以后记忆,故不 ... 
- mysql 5.7.16安装与给远程连接权限
			ZIP Archive版是免安装的.只要解压就行了.不需要安装.我的放在d盘啦. 1.配置: 也就是my.ini文件的由来. 把my-default.ini(此文件是解压之后,自带的)这个文件复制一下 ... 
