`
oywl2008
  • 浏览: 1015311 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

jmock2:getting started with junit4

 
阅读更多
最近想玩玩JMock。
对着官方文档,想开始写个test case,不过让我郁闷的是官方文档上给的实例代码不完全。算了,自己写个跑跑看了。
1.测试接口:
IHelloService:
<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> -->1 public interface IHelloService {
2 
3     /**
4      * @param name
5      * @return hello message
6      */
7     String sayHelloToSomebody(String name);
8 
9 }
IMPL:
<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> 1 public class HelloServiceImpl implements IHelloService {
 2 
 3     /*
 4      * (non-Javadoc)
 5      * 
 6      * @see org.hook.jmock.firstcase.HelloService#sayHelloToSomebody(java.lang.String,
 7      *      java.lang.String)
 8      */
 9     public String sayHelloToSomebody(String name) {
10         return "HELLO," + name + "!";
11     }
12 
13 }
Test Case:
<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> 1 public class IHelloServiceTest extends TestCase {
 2     private Mockery context = new JUnit4Mockery();
 3     private IHelloService helloService;
 4 
 5     /**
 6      * @throws java.lang.Exception
 7      */
 8     @Before
 9     public void setUp() throws Exception {
10         // set up
11         helloService = context.mock(IHelloService.class);
12     }
13 
14     /**
15      * Test method for
16      * {@link org.hook.jmock.firstcase.HelloServiceImpl#sayHelloToSomebody(java.lang.String)}.
17      */
18     @Test
19     public void testSayHelloToSomebody() {
20         final String message = "HELLO,alex!";
21         final String name = "alex";
22         // expectations
23         context.checking(new Expectations() {
24             {
25                 one(helloService).sayHelloToSomebody(name);
26                 will(returnValue(message));
27             }
28 
        });

29         // execute
30         String result = helloService.sayHelloToSomebody(name);
31         // verify
32         context.assertIsSatisfied();
33         assertSame(result, message);
34     }
35 }
OK,跑下测试,green bar...
2.测试类:
HelloService:
<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> 1 public class HelloService {
 2 
 3     /**
 4      * @param name
 5      * @return hello message
 6      */
 7     public String sayHelloToSomebody(String name) {
 8         return "HELLO," + name + "!";
 9     }
10 }
Test Case:
<!--<br /> <br /> Code highlighting produced by Actipro CodeHighlighter (freeware)<br /> http://www.CodeHighlighter.com/<br /> <br /> --> 1 public class HelloServiceTest extends TestCase {
 2     private Mockery context;
 3     private HelloService helloService;
 4 
 5     /**
 6      * @throws java.lang.Exception
 7      */
 8     @Before
 9     public void setUp() throws Exception {
10         context = new JUnit4Mockery();
11         // 声明针对类进行mock,针对接口则会采用动态代理,不需要声明
12         context.setImposteriser(ClassImposteriser.INSTANCE);
13         helloService = context.mock(HelloService.class);
14     }
15 
16     /**
17      * Test method for
18      * {@link org.hook.jmock.firstcase.HelloService#sayHelloToSomebody(java.lang.String)}.
19      */
20     @Test
21     public void testSayHelloToSomebody() {
22         final String message = "HELLO,vivian!";
23         final String name = "vivian";
24         // expectations
25         context.checking(new Expectations() {
26             {
27                 one(helloService).sayHelloToSomebody(name);
28                 will(returnValue(message));
29             }
30         });
31         // execute
32         String result = helloService.sayHelloToSomebody(name);
33         // verify
34         context.assertIsSatisfied();
35         assertSame(result, message);
36     }
37 }
OK,跑下测试,green bar again...
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明
Link: http://www.blogjava.net/alex0927/archive/2008/06/20/209474.html 
分享到:
评论

相关推荐

    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 ...

    JUnit4 与 JMock 之双剑合璧.doc

    在 developerWorks 上面有一些关于 JUnit4 的文章,也有关于 JMock 的文章,但是结合这两项技术的文章基本上没有。本文就基于这两种技术,对单元测试做一个全面的阐述。本文的目的不光是介绍层面的文字,更侧重作者...

    jmock2.5.1和easymock3.0

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

    Junit基础教程与学习

    Junit 基础教程与学习 Junit 是一个流行的 Java 单元测试框架,旨在帮助开发人员编写可靠、稳定、快速的代码。本文档旨在为初学者提供一个初步的了解 Junit 的认识,帮助他们快速入门轻松容易的进入到实际的项目中...

    jmock-2.5.1-javadoc

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

    xalanjava源码-Eclipse-Preferences:EclipseIDE的各种首选项

    jMock 模板 context : 声明一个Mockery实例。 expectations :声明用于指定期望的上下文。 mock :声明一个模拟实例。 rv :声明一个模拟的返回值。 Eclipse 首选项 Eclipse最爱 紧凑可读的测试代码使用了许多静态...

    jmock2.5.1.zip

    jmock2.5.1.zip

    JMOCK-2.6.0

    用于项目测试,JMOCK,可以与JUNIT搭配进行测试

    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.

    Jmock2.6 jar包

    Jmock2.6 jar包

    jmock-2.6.0-jars

    jmock jar和源码

    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学习文档

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

    JMOCK 帮助 网页 文档

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

    Junit开源测试框架

    Junit开源测试框架 -Junit -Jmock -selenium -Apache JMeter

    jmock-2.5.1-jars.zip

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

    Jmock学习手册

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

    Jmock Mock 没有接口的类

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

    jmock-1.0.1.jar

    jmock-1.0.1.jar jmock-1.0.1.jar

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

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

Global site tag (gtag.js) - Google Analytics