jmockit教程_java unit test Mock框架jMockit示例教程 - Mock 构造方法,基于状态的Mock
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相关推荐
- java unit test moke_java unit test Mock框架jMockit示例教程 - 另一种基于状态的Mock,随穿随脱?...
2014-07-09 06:30:01 阅读( 395 ) 除了使用@MockUp的另外一种基于状态的mock测试的方式. package cn.outofmemory.jmockit.target; ...
- 单元测试mock框架——jmockit实战
JMockit是google code上面的一个java单元测试mock项目,她很方便地让你对单元测试中的final类,静态方法,构造方法进行mock,功能强大.项目地址在:http://jmocki ...
- java 设计模式 示例_Java中的中介器设计模式-示例教程
java 设计模式 示例 中介者模式是行为设计模式之一 ,因此它处理对象的行为. 中介器设计模式用于在系统中不同对象之间提供集中式通信介质. 根据GoF,中介者模式意图是: 通过封装不同对象集相互交互 ...
- primefaces教程_Primefaces面板,PanelGrid和PanelMenu示例教程
primefaces教程 Welcome to Primefaces Panel and PanelGrid example tutorial. We will also look into Pane ...
- Mock框架Mockito入门教程
在开发中,我们经常会依赖同事或者第三方提供的接口,如果该接口无法正常工作:比如接口正在修复,或者网络异常等.那么便会对需要依赖该接口的开发造成很大影响. 遇到这种情况,我们可能会想到模拟该接口以提供正 ...
- primefaces教程_Primefaces树,TreeNode,TreeTable示例教程
primefaces教程 For displaying hierarchical data and create site navigation, Primefaces provides you Tr ...
- Xamarin图表开发基础教程(8)OxyPlot框架
Xamarin图表开发基础教程(8)OxyPlot框架 [示例OxyPlotFormsDemo]在Xamarin.Forms中实现线图的显示. (1)打开Xamarin.Forms项目. (2)将Ox ...
- SSM框架——详细整合教程(Spring+SpringMVC+MyBatis)
登录 | 注册 收藏成功 确定 收藏失败,请重新收藏 确定 查看所有私信查看所有通知 暂没有新通知 想要绕过微信小程序开发中的坑吗?不妨来听这个,今晚8点,1小时帮你搞定! 14小时以前 CSDN日报 ...
- JSF Spring Hibernate集成示例教程
JSF Spring Hibernate集成示例教程 欢迎使用JSF Spring Hibernate Integration示例教程.在上一篇教程中,我们了解了如何将JSF和Spring框架集成在一 ...
最新文章
- 安全绳使用方法图解_电暖器的使用方法与安全注意事项
- 在千万级的数据库查询中,如何提高效率?
- sockaddr_in中sin_zero的意义,以及sockaddr_in sockaddr in_addr区别联系
- 激光雷达和毫米波雷达的区别
- 一个iOS表单框架-UFKit
- Python学习 :格式化输出
- cf369 B Chris and Magic Square
- vb按热键启动应用程序
- 包和loggging模块
- C#重载操作符==和!=时注意问题
- 【已解决】FAILURE: Build failed with an exception......
- 【web前端特效源码】使用HTML5+CSS3+JavaScript制作一个进度条动画效果~适合初学者~超简单~ |前端开发|IT软件
- 同时使用SVN和Git进行版本控制
- 常见的股票量化策略有哪些?
- 用python做五子棋双人_python实现双人五子棋(终端版)
- 安装谷歌插件,程序包无效,解决方法
- 谷哥学术2022年2月资源分享下载列表 15/20
- python —— 使用sympy模块求解数学方程
- 牛客-郊区春游(状态压缩dp)(java)(c++)
- 产品管理精华:第一,谁是优秀的产品经理?
热门文章
- 算法学习左神第三节课
- 捷豹路虎将采用区块链技术,试行全球首个皮革数字化供应链
- 学习优达学城《无人驾驶入门》,具体需要掌握哪些python知识点?
- 常见网络安全攻防知识
- java.lang.ClassNotFoundException: Cannot find class: com.***.****.***.***.NewStudentDto
- c#中导入excel至sql server时出现“外部表不是预期格式”
- Java主流框架面试题
- 《软件设计师-知识点》
- 绝版!247个Python经典有趣实例,代码齐全可复制,PDF版拿走即用!
- Python/Django读取doc文档及在IIS8.5上部署所经历的波折及解决过程