`
franktony
  • 浏览: 13415 次
  • 性别: Icon_minigender_1
  • 来自: 上海
最近访客 更多访客>>
社区版块
存档分类
最新评论

jmock2的使用:入门

    博客分类:
  • java
阅读更多

 

jmock可以方便的对接口和类做mock

 

在这里采用的是junit 4.4 和jmock 2.2

注:eclipse3.3带的junit是4.3的,请下载新的

首先看类的,当然,这里示意的只是使用jmock的方法,
真正做测试的时候可不要这么干啊

public class Foo {

public String hello(){
return "hello";
}
}

 

@RunWith(JMock.class)
public class FooTest {
 
 Mockery context = new JUnit4Mockery() {
  {

//默认实现是对接口的,因为这里要对类mock,所以加上这句
   setImposteriser(ClassImposteriser.INSTANCE);
  }
 };


 @Test
 public void testFoo() throws Exception {
  
  final Foo foo = context.mock(Foo.class);
  
  context.checking(new Expectations(){

{
   //one表示foo对象的hello方法调用一次,will返回"foo",好理解吧
   one(foo).hello(); will(returnValue("foo"));
//可以再来一句,表示连续调用返回不同的结果   

//one(foo).hello(); will(returnValue("xxx"));
  }

//可以定义多个block

{   
   one(foo).hello(); will(returnValue("xxx"));   
  }

 

});
  
  assertEquals("foo", foo.hello());

assertEquals("xxx", foo.hello());
  

//如果有没有使用的mock,测试不通过
  context.assertIsSatisfied();
  
 }
 
}

 

如果想要表示连续调用产生不同的结果,上面的写法会烦一些

可以采用这种方法

 

  context.checking(new Expectations() {
   {

    atLeast(1).of(foo).hello(); will(onConsecutiveCalls(
      returnValue("foo"),
      returnValue("xx")    
    ));
    
   }

});

分享到:
评论

相关推荐

    JMOCK使用文档

    2. **JMock的核心概念** - **Expectations(期望)**:在测试中定义模拟对象的行为,指定何时以及如何响应方法调用。 - **Matchers(匹配器)**:用于指定方法参数的预期值,如`anyInt()`表示任何整数。 - **...

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

    jMock基本使用方法

    ### jMock基本使用方法 #### 一、简介 jMock 是一个流行的 Java 框架,用于支持单元测试,特别是对于模拟对象(mock objects)的支持。通过 jMock,开发人员可以轻松地创建模拟对象来替代实际的对象依赖,从而在...

    Jmock2.6 jar包

    2. **创建模拟对象**:使用`Mockery`类创建一个上下文,然后在这个上下文中定义你要模拟的对象。 3. **定义期望**:在测试方法中,使用`expectations`块定义模拟对象的期望行为。 4. **运行测试**:调用`context....

    jmock学习文档

    2. **动态行为定义**:在 jMock 中,你可以动态地设置模拟对象的行为,比如返回特定的值,抛出异常,或者记录方法调用的次数。这种灵活性使得测试能够覆盖各种可能的执行路径。 3. **期望验证**:jMock 的一个重要...

    jmock2.5.1.zip

    jMock 2.5.1.chm文件是一个帮助文档,包含了jMock框架的详细使用指南。通过这个文档,开发者可以学习如何创建和配置模拟对象,设置和验证期待,以及如何在JUnit等测试框架中集成jMock。 首先,创建模拟对象通常需要...

    jmock cookbook 资源整合

    《JMock Cookbook资源整合》是关于Java测试领域中JMock库使用的详细指南,旨在帮助开发者更好地理解和运用这个强大的模拟框架。JMock是一个用于Java应用程序单元测试的工具,它允许程序员模拟对象的行为,以便在孤立...

    JMOCK-2.6.0

    例如,可以使用JMOCK的expectations来定义对象行为,然后在JUNIT的@Test注解的测试方法中验证这些预期。这种结合使得测试代码清晰、可读性强,同时也简化了测试的编写和维护。 JMOCK-2.6.0版本可能包含以下改进和...

    JMOCK 帮助 网页 文档

    2. **期望(Expectations)**:这是JMock的核心,它定义了模拟对象在测试期间应该如何被调用。你可以设定方法调用的顺序、参数、返回值甚至是抛出的异常。 3. **验证(Verification)**:在测试结束时,JMock会检查...

    JMock

    要在项目中使用JMock,首先需要添加相应的依赖。对于Maven项目,可以在pom.xml文件中加入以下依赖: ```xml <groupId>org.jmock <artifactId>jmock-junit4 <version>2.8.4 <scope>test ``` 同时,由于JMock...

    jmock-2.5.1-javadoc

    本文将深入探讨jMock的核心概念、用法以及如何与JUnit结合使用。 一、jMock简介 jMock是基于Java的模拟库,它的设计目标是使单元测试变得更加简洁和清晰。传统的单元测试往往依赖于真实对象,但这种方式可能导致...

    jmock-2.6.0-jars

    通过阅读这些文档,你可以更好地了解如何有效地使用`jmock`,解决你在测试过程中遇到的问题。 总结来说,`jmock-2.6.0-jars`是一个包含`jmock`库的压缩包,它提供了进行交互式单元测试的工具,特别是对于那些依赖于...

    JMock JARs+docs

    2. **JMock 文档**: `jmock-2.5.1-javadoc.zip` 文件提供了JMock的API文档,程序员可以通过查看这份文档了解如何使用JMock的各种类、方法和接口。Javadoc是一种标准格式,它将源代码中的注释转换为易于阅读的HTML...

    jMock Cookbook 中文版.doc

    6. **定义期望(Expectations)**:使用`Expectations`类来指定模拟对象的行为,例如期望`subscriber`的`receive`方法被调用一次,并传入特定的消息。在JUnit 3和4中,我们使用`oneOf(subscriber).receive(message)`...

    jmock-1.2.0-jars.zip

    1. **创建模拟对象**:使用`Mockery`类来创建模拟对象,如`Mockery context = new Mockery(); MyInterface mock = context.mock(MyInterface.class);` 2. **定义行为**:通过`expect`方法来设定模拟对象的预期行为...

    jmock2.5.1和easymock3.0

    而JMock和EasyMock则是两种广泛使用的Java单元测试框架,它们允许开发者模拟对象的行为和交互,以便于测试复杂的系统。本资源包含JMock 2.5.1和EasyMock 3.0的库文件,使得开发者在进行单元测试时无需再四处寻找相关...

    jmock-1.2.0-jars.rar

    在 JUnit 中,你可以使用 `jmock-junit3` 或 `jmock-junit4` 包,它们提供了一个 JUnit Rule,使得在测试类中使用 JMock 更加方便。 6. **版本信息** 这个压缩包中的 "jmock-1.2.0-jars" 提供的是 JMock 1.2.0 ...

    JMock学习文档分享

    1. **隔离测试**:使用JMock尽量减少对外部系统的依赖,确保每个测试只关注单一的功能点。 2. **清晰的期望**:为模拟对象设定明确的期望,使测试意图易于理解。 3. **合理使用模拟**:并非所有对象都需要模拟,...

    使用 FactoryBean结合Jmock实现动态Mock类的注入

    为了结合`FactoryBean`和Jmock,我们需要在`FactoryBean`的实现中使用Jmock来动态创建模拟对象。以下是一个简单的示例: ```java public class MockingFactoryBean implements FactoryBean<Object> { private ...

    maven+jmock

    标题 "maven+jmock" 暗示了我们要讨论的是如何在 Maven 项目中使用 JMock 进行单元测试。Maven 是一个流行的构建自动化工具,用于管理项目的构建、依赖和文档,而 JMock 是一个 Java 代码模拟库,允许开发者在测试中...

Global site tag (gtag.js) - Google Analytics