`
fengjia10
  • 浏览: 30625 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论
阅读更多

      EAI设计开发中,由于涉及多个系统之间的交互,有时需要借用Mock思想,正所谓隔离性编码。在你深入理解了Junit和TestNG框架背后的设计哲学,并且深谙动态代理理念后,这里再为大家送上Mock大餐,没错,Jmockit,公司目前在用的Mock框架,其实和我们熟知的Mokito,Jmock和easyMock差不多,只不过对于静态,final的Mock更彻底,更优雅而已,同时它还有自己的增量Testing plugin.

       当然,如果你是TDD拥捧者,在发挥测试框架强大功能的同时,你一定会对持续集成有更深的认识。即便你的日常编码中缺少单元自测环节(不好的习惯奥),但我还是建议你,花点时间学习一下,掌握一下,只需启动它一次,你便会深深地爱上它(技术敏感性,这是我的感悟)。也许你是一名开发老手,甚至是一位技术大牛,在开发过程中,尤其是在编写底层框架代码时,肯定也曾为层与层之间的隔离测试而烦恼,是否还觉得自己写的工具类,静态方法,私有方法,final类,难于测试?这时,Jmockit映入你的眼帘,没错,试着用用它,没准你和我一样,对测试有术也许有更深的理解。试着拥抱开源,并回报开源吧!

       附件是为大家分享的Jmockit ppt,最后补充一点,Jmockit的掌握是需要一定编程技巧和编程经验的,大家慢慢享用吧,有问题可以留言,一同探讨技术难题。

2
0
分享到:
评论
4 楼 fengjia10 2011-08-04  
gkbusy 写道
个人的愚见:
PPT名为《JMockit深度使用》更为合适。

乍看标题还以为是讲解原理的~~
相信作者已经看过不少源码,可以深入挖掘一下JMockit录制和回放过程如何通过字节码热替换来实现mock、以及这么做的一些弊端(比如,多个测试类按不同的顺序执行,会影响到某个被测试的业务类的静态属性的正确初始化)。



恩,建议不错,这个肯定会的呢,只是最近工作上的事情比较多,后面会持续更新的,尤其是multiThread跑测试用例时,行为,状态mock混乱的场景以及应对方案
3 楼 gkbusy 2011-07-20  
个人的愚见:
PPT名为《JMockit深度使用》更为合适。

乍看标题还以为是讲解原理的~~
相信作者已经看过不少源码,可以深入挖掘一下JMockit录制和回放过程如何通过字节码热替换来实现mock、以及这么做的一些弊端(比如,多个测试类按不同的顺序执行,会影响到某个被测试的业务类的静态属性的正确初始化)。
2 楼 fengjia10 2011-04-12  
    不好意思,才看到你的留言,趁着中午休息,简单回复一下你的问题吧,希望对你有用! 
    if you want to discards any mocks set up for the specified classes that are currently in effect,please use tearDownMocks(Class<?>... realClasses),such as
你可以写成Mockit.tearDownMocks(LockService.class),这是在你这种写法的基础上的最小改动;
    其实还是有其它解决方案的,比方说,你可以自己设置标志位,不同实例返回不一样的结果,这样也可以防止mock互相干扰;异或考虑@MockClass的instantiation属性,采用PerMockedInstance或者PerMockSetup 试试!
1 楼 Mc_Qsad 2011-03-11  
请问 我用jmockit的时候,模拟同一个静态方法,模拟返回不同值,但是他们互相影响
public void testLogonAndAddOnlineUserTest1() {
new MockUp<LockService>() {
@SuppressWarnings("unused")
@Mock
public int getLimitUserCount() {
return -1;
}
}.getMockInstance();
try {
securityService.logonAndAddOnlineUser("123123", "123123213",
"10.10.181.105", null);
Assert.assertFalse(mark);
} catch (SecurityException e) {
assertThat(e.getMessage(), is("无效访问,请使用正版软件!"));
mark = true;
}
Assert.assertTrue(mark);
Mockit.tearDownMocks();
}
我没一个方法都有Mockit.tearDownMocks();,但是仍然不能让其类似于数据库回滚掉,麻烦你帮忙解惑

相关推荐

    Spring in Action 中文版 第五部分(Spring in Action CN.005)

    Spring in Action CN.001&lt;br&gt;Spring in Action CN.002&lt;br&gt;Spring in Action CN.003&lt;br&gt;Spring in Action CN.004&lt;br&gt;Spring in Action CN.005&lt;br&gt;Spring in Action CN.006&lt;br&gt;Spring in Action CN.007&lt;br&gt;Spring in ...

    Spring in Action 中文版 第二部分(Spring in Action CN.002)

    Spring in Action CN.001&lt;br&gt;Spring in Action CN.002&lt;br&gt;Spring in Action CN.003&lt;br&gt;Spring in Action CN.004&lt;br&gt;Spring in Action CN.005&lt;br&gt;Spring in Action CN.006&lt;br&gt;Spring in Action CN.007&lt;br&gt;Spring in ...

    ActiveMQ in Action pdf英文版+源代码

    ActiveMQ in Action pdf英文原版加源代码压缩包。 Apache ActiveMQ in Action is a thorough, practical guide to implementing message-oriented systems in Java using ActiveMQ. The book lays out the core of ...

    IronPython in Action 无水印pdf版

    IronPython in Action 无水印pdf版。 IronPython in Action 英文无水印pdf pdf所有页面使用FoxitReader和PDF-XChangeViewer测试都可以打开 本资源转载自网络 IronPython Action

    In Action系列技术书籍

    本系列包含的书籍有《Spring in Action》第三版、《Restlet in Action》、《OSGi in Action》以及《MongoDB in Action》。 【描述】中的"Spring in Action.3rd"指的是Spring框架的实战指南,第三版。Spring是Java...

    《Rust in Action》 by Timothy Samuel McNamara

    Rust in Action 是一本面向想要探索 Rust 编程语言世界的中级程序员的书。它适用于可能已经用尽网络上的免费资料但仍想了解更多信息的人。它与 Rust 编程的其他材料不同,因为它还教您有关系统编程的知识。您将能够...

    lucene in action 2nd edition, lucene in action 第二版 PDF

    《Lucene in Action 第二版》是一本深入探讨Apache Lucene全文检索库的专业书籍,它在Java开发领域具有很高的权威性。这本书详细介绍了如何利用Lucene进行高效的文本搜索和索引构建,是Java开发者和信息检索爱好者的...

    Hadoop In Action2

    Hadoop In Action 中文第二版 卷二 rar

    spring in action的jar包

    《Spring in Action》是关于Spring框架的一本经典书籍,它深入浅出地介绍了Spring的核心概念和技术。这个"spring in action的jar包"很可能是书中提到的一些必要的库文件,用于配合书中的实例代码运行。这些jar包是...

    R in Action 中文版PDF及原代码

    《R in Action》是一本深度探讨R语言的实用书籍,其中文版的PDF及源代码提供了全面学习和实践R语言的机会。这本书旨在帮助读者不仅理解R语言的基本语法和概念,而且能够利用R进行数据处理、统计分析以及创建高质量的...

    r in action ,第一版和第二版高清pdf R_IN_ACTION_1_AND_2

    《R in Action》是关于R语言的一本经典著作,涵盖了从初学者到高级用户的全面教程。这本书分为两个版本,第一版和第二版,都提供了高清PDF格式,方便读者在线阅读或下载保存。作为一本旨在帮助统计学入门者的书籍,...

    Spring in Action, 6th Edition, PDF 格式

    Spring in Action, Sixth Edition is a comprehensive guide to Spring’s core features, all explained in Craig Walls’ famously clear style. You’ll put Spring into action as you build a complete ...

    gradle in action 中文版高清pdf 带书签

    《Gradle in Action》是一本深入探讨Gradle构建系统的书籍,中文版的高清PDF版本为开发者提供了方便的学习途径。Gradle是一种强大的、基于Groovy和Java的开源构建自动化工具,适用于各种项目,尤其是大型和复杂的...

    C++ Concurrency in Action_C++_action_

    《C++ Concurrency in Action》是一本深入探讨C++并发编程的权威著作,作者是知名软件开发者、C++专家Anthony Williams。这本书旨在帮助C++程序员理解和掌握如何在现代多核处理器环境中有效地使用并发和并行编程技术...

    Unity in Action Multiplatform game development in C#(2nd) 无水印原版pdf

    Unity in Action Multiplatform game development in C#(2nd) 英文无水印原版pdf 第2版 pdf所有页面使用FoxitReader、PDF-XChangeViewer、SumatraPDF和Firefox测试都可以打开 本资源转载自网络,如有侵权,请联系...

Global site tag (gtag.js) - Google Analytics