2015-03-09 06:30:01

阅读( 318 )

package cn.outofmemory.jmockit.target;

public class Constructor {

private String memberId;

public Constructor(String memberId) {

this.memberId = memberId;

}

public String getRealName() {

return "real_" + this.memberId;

}

}

Mock代码:

package cn.outofmemory.jmockit.sample;

import jmockit.target.Constructor;

import junit.framework.Assert;

import mockit.Expectations;

import mockit.Mock;

import mockit.MockUp;

import mockit.Mocked;

import org.junit.Test;

/**

* 好了,到此为止,之前所有的mock都是基于行为的mock,以下对构造方法的mock的示例是基于状态的。

* 我认为基于行为的mock是站在目标测试代码外面的角度的,而基于状态的是站在目标测试代码内部的。我们可以对传入的参数进行检查、匹配,才返回某些结果。

*

* @author Ginge

*

*/

public class ConstructorTest1 {

@Mocked

private Constructor constructor = null;

@Test

public void mockConstructor() {

new Expectations() {

{

// MockUp可以对应一个类或者接口,如果它的子类中有方法被注解了@Mock,

// 并且恰好方法的签名又和传入的泛型的类型中某个方法一样,那么对应的方法就被Mock

new MockUp() {

private String memberId;

// $init表示构造方法

@Mock

public void $init(String memberId) {

this.memberId = "mock_" + memberId;

}

@Mock

public String getRealName() {

return this.memberId;

}

};

}

};

//触发构造方法的mock

constructor = new Constructor("Constructor");

Assert.assertEquals("mock_Constructor", constructor.getRealName());

}

}

分享给朋友:

亲~ 如果您有更好的答案 可在评论区发表您独到的见解。

您想查看更多的信息:

面试题

jmockit教程_java unit test Mock框架jMockit示例教程 - Mock 构造方法,基于状态的Mock相关推荐

  1. java unit test moke_java unit test Mock框架jMockit示例教程 - 另一种基于状态的Mock,随穿随脱?...

    2014-07-09 06:30:01 阅读( 395 ) 除了使用@MockUp的另外一种基于状态的mock测试的方式. package cn.outofmemory.jmockit.target; ...

  2. 单元测试mock框架——jmockit实战

    JMockit是google code上面的一个java单元测试mock项目,她很方便地让你对单元测试中的final类,静态方法,构造方法进行mock,功能强大.项目地址在:http://jmocki ...

  3. java 设计模式 示例_Java中的中介器设计模式-示例教程

    java 设计模式 示例 中介者模式是行为设计模式之一 ,因此它处理对象的行为. 中介器设计模式用于在系统中不同对象之间提供集中式通信介质. 根据GoF,中介者模式意图是: 通过封装不同对象集相互交互 ...

  4. primefaces教程_Primefaces面板,PanelGrid和PanelMenu示例教程

    primefaces教程 Welcome to Primefaces Panel and PanelGrid example tutorial. We will also look into Pane ...

  5. Mock框架Mockito入门教程

    在开发中,我们经常会依赖同事或者第三方提供的接口,如果该接口无法正常工作:比如接口正在修复,或者网络异常等.那么便会对需要依赖该接口的开发造成很大影响. 遇到这种情况,我们可能会想到模拟该接口以提供正 ...

  6. primefaces教程_Primefaces树,TreeNode,TreeTable示例教程

    primefaces教程 For displaying hierarchical data and create site navigation, Primefaces provides you Tr ...

  7. Xamarin图表开发基础教程(8)OxyPlot框架

    Xamarin图表开发基础教程(8)OxyPlot框架 [示例OxyPlotFormsDemo]在Xamarin.Forms中实现线图的显示. (1)打开Xamarin.Forms项目. (2)将Ox ...

  8. SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)

    登录 | 注册 收藏成功 确定 收藏失败,请重新收藏 确定 查看所有私信查看所有通知 暂没有新通知 想要绕过微信小程序开发中的坑吗?不妨来听这个,今晚8点,1小时帮你搞定! 14小时以前 CSDN日报 ...

  9. JSF Spring Hibernate集成示例教程

    JSF Spring Hibernate集成示例教程 欢迎使用JSF Spring Hibernate Integration示例教程.在上一篇教程中,我们了解了如何将JSF和Spring框架集成在一 ...

最新文章

  1. 安全绳使用方法图解_电暖器的使用方法与安全注意事项
  2. 在千万级的数据库查询中,如何提高效率?
  3. sockaddr_in中sin_zero的意义,以及sockaddr_in sockaddr in_addr区别联系
  4. 激光雷达和毫米波雷达的区别
  5. 一个iOS表单框架-UFKit
  6. Python学习 :格式化输出
  7. cf369 B Chris and Magic Square
  8. vb按热键启动应用程序
  9. 包和loggging模块
  10. C#重载操作符==和!=时注意问题
  11. 【已解决】FAILURE: Build failed with an exception......
  12. 【web前端特效源码】使用HTML5+CSS3+JavaScript制作一个进度条动画效果~适合初学者~超简单~ |前端开发|IT软件
  13. 同时使用SVN和Git进行版本控制
  14. 常见的股票量化策略有哪些?
  15. 用python做五子棋双人_python实现双人五子棋(终端版)
  16. 安装谷歌插件,程序包无效,解决方法
  17. 谷哥学术2022年2月资源分享下载列表 15/20
  18. python —— 使用sympy模块求解数学方程
  19. 牛客-郊区春游(状态压缩dp)(java)(c++)
  20. 产品管理精华:第一,谁是优秀的产品经理?

热门文章

  1. 算法学习左神第三节课
  2. 捷豹路虎将采用区块链技术,试行全球首个皮革数字化供应链
  3. 学习优达学城《无人驾驶入门》,具体需要掌握哪些python知识点?
  4. 常见网络安全攻防知识
  5. java.lang.ClassNotFoundException: Cannot find class: com.***.****.***.***.NewStudentDto
  6. c#中导入excel至sql server时出现“外部表不是预期格式”
  7. Java主流框架面试题
  8. 《软件设计师-知识点》
  9. 绝版!247个Python经典有趣实例,代码齐全可复制,PDF版拿走即用!
  10. Python/Django读取doc文档及在IIS8.5上部署所经历的波折及解决过程