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

JMock 2 例子

阅读更多
JMock的意义,假如service里某个方法,有10几步逻辑处理,而且依赖于dao的数据。你不知道你写的逻辑正不正确。这时候可以用JMock来测试,而不用依赖于dao。
mock是虚拟的意思,事实上,JMock可以做任何类的孤立测试,他能虚拟出所有依赖类!

依赖jar包:hamcrest-core-1.1.jar, hamcrest-core-library.jar, jmock-2.5.1.jar, jmock-junit4-2.5.1.jar以及JUnit

package com.supben.service;

import java.util.ArrayList;
import java.util.List;

import junit.framework.TestCase;

import org.jmock.Expectations;
import org.jmock.Mockery;
import org.junit.Assert;

import com.supben.pojo.User;

public class JmockTest extends TestCase {

	Mockery context = new Mockery();
	UserService userService = null;

	@Override
	public void setUp() throws Exception {
		userService = context.mock(UserService.class);
	}

	public void testSayHello() {
		context.checking(new Expectations() {
			{
				List<User> list = new ArrayList<User>();
				for (int i = 0; i < 5; i++) {
					User user = new User();
					user.setUserId(new Long(i));
					user.setUserName("supben" + i);
					list.add(user);
				}

				//执行某个方法(括号里可带参数)
				oneOf(userService).find3Table();
				//期待返回的值
				will(returnValue(list));
			}
		});

		List<User> list = userService.find3Table();
		assertSame(5, list.size());
	}
}


0
2
分享到:
评论

相关推荐

    Jmock2.6 jar包

    2. **模拟与验证**:Jmock允许你创建模拟对象来替代真实的依赖,这样可以避免在测试中引入不必要的复杂性。同时,它还提供强大的验证机制,确保在测试过程中对象交互符合预期。 3. **灵活的匹配器**:Jmock支持多种...

    JMock

    在这个例子中,我们模拟了一个`Calculator`对象,当调用`add(1, 2)`方法时,它会返回3。 ### 验证与确认 在测试执行后,必须确认所有的期望都被满足。这可以通过调用`context.assertIsSatisfied()`来完成。如果...

    jmock-2.5.1-javadoc

    在这个例子中,我们首先创建了一个`MyDependency`的模拟对象,然后定义了它的`myExpectedMethod`方法应被调用一次,并返回"expected value"。测试方法`testMyMethod`中,我们调用了被测试的`myMethod`,并传递了模拟...

    JMOCK使用文档

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

    maven+jmock

    在这个例子中,我们模拟了两个 `Number` 对象,设置了它们的 `doubleValue` 方法返回特定值,并在测试中使用这些模拟对象。最后,我们验证了 `Calculator.add` 方法的结果是否正确。 标签 "源码" 提醒我们关注 ...

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

    在这个例子中,`MockingFactoryBean`接收目标类的`Class`对象,然后使用Jmock创建该类的模拟对象。在测试中,我们可以通过Spring配置将`MockingFactoryBean`注入到依赖的位置,从而实现动态Mock类的注入。 在实际...

    JMock学习文档分享

    2. **期望(Expectations)**:这是JMock的核心,用于定义模拟对象在测试期间应如何响应方法调用。你可以设定何时、何地以及如何响应这些调用。 3. **验证(Verification)**:测试完成后,JMock会验证模拟对象在...

    JMock学习资料

    2. **定义期望**:在测试的setup阶段,设置模拟对象的方法调用期望。你可以指定方法何时被调用、调用次数、参数等。 3. **执行测试**:在测试主体中,执行你要测试的代码,这将触发模拟对象的行为。 4. **验证期望...

    SimpleHotel.zip

    2. `bin` 目录存放了编译后的类文件,其中可能包含了待测试的业务逻辑和JMock测试类。 3. `.settings` 目录包含Eclipse项目的特定配置,如编译器设置等。在使用JMock时,我们可以在这里配置编译器以启用对模拟对象...

    junit学习文档.doc

    接下来,我们看一个简单的例子。这里有两个类`Demo1`和`Demo2`,分别包含一些方法,例如`foo()`和数学运算方法。为了对这些方法进行测试,我们可以创建两个对应的测试类`Demo1Test`和`Demo2Test`,这两个测试类继承...

    teste-unitario:使用单元测试框架的例子

    本文将详细探讨如何使用三种流行的Java单元测试框架:jMock、Mockito和EasyMock,并通过"teste-unitario:使用单元测试框架的例子"这个项目,帮助你理解和应用这些工具。 1. **jMock**:jMock是一个用于创建和执行...

    敏捷开发:Domain Specific Language

    在文章的部分内容中,通过一个具体的例子——密斯·格兰特的秘密面板(Miss Grant's Secret Panel)来说明如何使用DSL定义状态机。 **秘密面板**的工作原理是这样的: - 面板通常处于锁定状态。 - 为了解锁面板,...

    通过java字节码分析学习对象初始化顺序

    在单元测试中,如使用jMock这样的库,可能需要对这个顺序有精确的控制,以便模拟预期的行为。 通过使用像`javap`这样的工具,我们可以查看Java字节码,进一步了解这些过程。字节码是JVM直接执行的低级指令,它揭示...

    mock学习交流

    Mocking框架如Mockito、EasyMock或JMock使得创建和管理Mock对象变得简单。 Java中的Mockito是一个广泛使用的开源库,它提供了一种优雅的方式来创建和配置Mock对象。使用Mockito,你可以声明一个对象为Mock,然后...

    java变量作用域笔试题-arquillian-testrunner-spock:ArquillianSpockTestRunner

    JUnit、jMock、RSpec、Groovy、Scala、Vulcans 和其他迷人的生命形式。 Spock Arquillian 扩展为使用 Arquillian 在容器内运行的 Spock 测试打开了大门,具有完整的 EJB、资源和 CDI 注入。 例子 @Deployment def ...

Global site tag (gtag.js) - Google Analytics