`
dtrex
  • 浏览: 138323 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JMock简单入门

阅读更多

先说说JMock是用来干什么的,我觉得最简单的说,他就是用来模拟一个类,即使这个类根本没有实现。这个跟他的名字就比较像了。

举个例子吧,有一个Subscripter的类,他没有实现只有接口,我们有一个Publisher的类,这个类的测试,要用到这个传说中的Subscripter类,这个时候在没有实现,或者想减少测试干扰的时候,我们可以模拟Subscripter这个类。废话少说,实现这个例子吧:

 

1.建立一个工程,然后下载jmock,把如下的库加载到工程中(这里使用的是junit4的方法。)

  • jmock-2.5.1.jar
  • hamcrest-core-1.1.jar
  • hamcrest-library-1.1.jar
  • jmock-junit3-2.5.1.jar
  • jmock-junit4-2.5.1.jar

2.要有Subscripter的接口定义:

 

interface Subscriber {
    void receive(String message);
}

 

3.来实现我们的junit测试吧:

注意:

使用JMock模拟类的条件:

  1、要有无参数的构造器;

  2、构造器是public;

 

@RunWith(JMock.class)
class PublisherTest {
    Mockery context = new JUnit4Mockery();
    
    @Test 
    public void oneSubscriberReceivesAMessage() {
        // set up
        final Subscriber subscriber = context.mock(Subscriber.class);

        Publisher publisher = new Publisher();
        publisher.add(subscriber);
        
        final String message = "message";
        
        // expectations
        context.checking(new Expectations() {{
            oneOf (subscriber).receive(message);
        }});

        // execute
        publisher.publish(message);
    }
}

 

这里说明一下:

 final Subscriber subscriber = context.mock(Subscriber.class);

建立了一个虚拟的subscriber的类,然后替代它的方法:

 context.checking(new Expectations() {{
            oneOf (subscriber).receive(message);
        }});

看看执行效果,是不是已经被替代了。步骤就是这么简单。

 

分享到:
评论

相关推荐

    jmock2.5.1.zip

    jmock2.5.1.zip

    JMOCK 2.6.0-RC2

    jMock 2: Java 5 and above. Stable: 2.5.1 Binary JARs (includes the source to let IDEs provide context-sensitive help) Javadocs Unstable: 2.6.0-RC2 Binary JARs (includes the source to let IDEs ...

    Jmock2.6 jar包

    Jmock2.6 jar包

    jmock-2.5.1-javadoc

    jmock可以模拟对象,常用于单元测试,与junit配合使用 jmock-2.5.1-javadoc

    jmock-1.2.0.jar

    Maven-Central / jmock / jmock-cglib 1.2.0 Maven-Central / org.apache.activemq / activemq-ra 5.2.05.1.0 Maven-Central / org.apache.maven.shared / maven-dependency-tree 1.21.1 Maven-Central / org.apache...

    jmock-2.6.0-jars

    jmock jar和源码

    JMOCK 帮助 网页 文档

    JMOCK 帮助 网页 文档 在网上找的一些bolg里的文档 JMOCK 帮助 网页 文档 在网上找的一些bolg里的文档

    Jmock学习手册

    Jmock学习手册,让你更快学习Jmock。。

    Jmock Mock 没有接口的类

    Jmock Mock 没有接口的类 很方便使用

    jmock-1.0.1.jar

    jmock-1.0.1.jar jmock-1.0.1.jar

    jmock2.5.1和easymock3.0

    JMock2.5.1和EasyMock3.0以及一些JUnit单元测试所需的jar,让你使用JMock和EasyMock时不用到处找相关的jar。

    jmock2.5.1

    JMock is a library that supports test-driven development1 of Java2 code with mock objects3. Mock objects help you design and test the interactions between the objects in your programs.

    JMock

    NULL 博文链接:https://tristan-s.iteye.com/blog/1750265

    jmock-1.2.0-jars.rar

    jmock-1.2.0-jars.rar

    jmock-2.5.1-jars.zip

    jMock利用mock objects思想来对Java code进行...jMock具有以下特点:容易扩展,让你快速简单地定义mock objects,因此不必打破程序间的关联,让你定义灵活的超越对象之间交互作用而带来测试局限,减少你测试地脆弱性。

    jmock2.5基本教程—终结版.doc

    jmock2.5基本教程目录第0章 概述第1章 jmock初体验第2章 期望第3章 返回值第4章 参数匹配第5章 指定方法调用次数第6章 指定执行序列第7章 状态机第0章 概述

    JMOCK使用文档

    这个是几篇关于如何使用JMOCK对java代码测试,如果实在不清楚,也可咨询 445054051

    jmock学习文档

    jmock学习文档,模拟对象技术,jMock 可以和既有的其他测试框架,如JUnit,很好地整合在一起,共同使用。

    jmock-2.6.0帮助文档chm格式

    jmock的chm格式文档。版本2.6.0

    jmock cookbook 资源整合

    NULL 博文链接:https://dadi520.iteye.com/blog/1036643

Global site tag (gtag.js) - Google Analytics