关键字: JMock, 单元测试
JMock资料本来就少, JMock2.0更是少之又少,官方那可怜巴巴的几个连接,似乎并不能说明一个简单的例子应该怎么运行。
我结合官方那个例子,简单的写了一个最简单的JMock实例。
废话少说,先把jar包加上,我试了一下,下面似乎是必须的:
jmock.jar, jmock-junit.jar, junit.jar, hamcrest-core.jar, hamcrest-library.jar
配置好了,可以开始玩Mock了。与Spring相似的,Mock也有两种代理机制,一种是面向接口的,一种是面向普通Java类的(需要cglib.jar支持)。我这里使用的是面向接口的。先写一个简单的接口吧:
java 代码
public interface IUserService {
public String sayHello(String str);
}
实现也非常简单:
java 代码
public class UserServiceImpl implements IUserService {
public String sayHello(String str) {
return str;
}
}
开始测试吧:
java 代码
import junit.framework.TestCase;
import org.jmock.Expectations;
import org.jmock.Mockery;
public class UserServiceTest extends TestCase {
Mockery context = new Mockery();
IUserService userService = null;
protected void setUp() {
userService = context.mock(IUserService.class);
}
public void testSayHello() {
final String message = "HelloSuperLeo";
context.checking(new Expectations() {
{
one(userService).sayHello("HelloSuperLeo");
will(returnValue(message));
}
});
// 测试成功
String result = userService.sayHello("HelloSuperLeo");
// 测试失败
// String result = userService.sayHello("fdjsasdfa");
assertSame(result, message);
}
}
在JMock2.0后, Mock已经改成Mockery了, 所以大家要注意这个区别。
上面的代码讲的就是一件事: 模拟当传入参数(这里是:"HelloSuperLeo")时,返回预先的值(这里是:message="HelloSuperLeo")。然后运行要测试的方法(这里是:userService.sayHello(String str))。
Mock要解决的问题在这个简单的例子里似乎并不能体现出来,不过,先让大家知道怎么用才是最重要的吧。
分享到:
相关推荐
- `JMock单元测试.doc`:可能包含具体的JMock使用示例和详细解释。 - `Jmock学习文档.docx`:更深入的JMock教程,可能包括高级用法和最佳实践。 - `Junit使用.ppt`:可能是一个关于JUnit基本用法和如何与JMock...
不管是测试驱动开发或者是其它的开发模式,都会需要对代码进行单元测试,对于关联依赖关系少或者比较简单的类来说,直接使用JUnit就可以轻松的完成测试工作,但是对于关联到其它比较复杂的类或对运行环境有要求的类...
本资源包包含了多个与单元测试相关的工具和框架,特别是与`jtest`和`jmock`相关的材料。 **jtest** `jtest`是一款强大的单元测试工具,特别适合Java开发者。它提供了一个集成的测试环境,帮助开发者编写、运行和...
`jmock`是Java平台上的一个模拟框架,它允许开发者在单元测试中创建和控制对象的行为,以便能够隔离测试并精确地指定期望的交互。下面我们将深入探讨`jmock`的关键概念和功能。 ### 1. 模拟框架概述 `jmock`属于...
《jMock 2.5.1:模拟对象与单元测试的艺术》 jMock是一个强大的Java模拟框架,它在软件开发的单元测试阶段扮演着至关重要的角色。jMock 2.5.1是该框架的一个版本,它提供了丰富的功能,帮助开发者创建虚拟对象,...
**Jmock2.6 Jar包**是Java编程领域中用于单元测试的重要库,它提供了模拟对象的功能,使得开发者能够在测试代码时对复杂依赖关系进行控制和隔离。在本文中,我们将深入探讨Jmock2.6的核心特性、使用场景以及如何在...
总结来说,jMock 2.5.1是一个强大的模拟工具,它使开发者能够在单元测试中有效地控制和验证对象行为,提高测试覆盖率和代码质量。通过阅读jMock 2.5.1.chm的帮助文档,开发者可以深入理解并掌握这一工具,从而在实践...
jMock 是一个流行的 Java 框架,用于支持单元测试,特别是对于模拟对象(mock objects)的支持。通过 jMock,开发人员可以轻松地创建模拟对象来替代实际的对象依赖,从而在单元测试中避免与外部系统的交互,确保测试...
本文将深入探讨如何利用`jmock`这个强大的工具来编写高效的单元测试,以及它如何促进Test Driven Development(TDD)和敏捷开发。 `jmock`是一个Java库,它提供了一种创建模拟对象(mock objects)的方法,这些模拟...
JMock是一个用于Java应用程序单元测试的工具,它允许程序员模拟对象的行为,以便在孤立的环境中测试代码。在这个资源包中,包含了英文版的《JMock_CookBook_EN.pdf》和中文版的《JMock_CookBook_CN.pdf》,为不同...
本文将深入探讨JMock库,它是一个强大的Java模拟框架,常用于单元测试,以及如何结合Spring测试模块进行高效测试。 JMock是一个用于创建和验证对象行为的模拟框架,它允许开发者在测试中模拟对象的行为,而不是依赖...
JMock 是一个Java平台上的单元测试框架,专门用于模拟对象,以便在测试过程中控制和验证对象的行为。它基于EasyMock库,但提供了更强大的功能,尤其是对于处理复杂交互和顺序的场景。JMock使得开发者可以在不依赖...
总之,JMock是Java开发者进行单元测试的重要工具,它通过模拟对象的创建和行为控制,帮助我们编写出更健壮、更可靠的代码。结合jmock-core和jmock-cglib这两个库,我们可以应对各种复杂的测试场景,提升测试的质量和...
而JMock和EasyMock则是两种广泛使用的Java单元测试框架,它们允许开发者模拟对象的行为和交互,以便于测试复杂的系统。本资源包含JMock 2.5.1和EasyMock 3.0的库文件,使得开发者在进行单元测试时无需再四处寻找相关...
《JMOCK-2.6.0:强化Java单元测试的艺术》 在软件开发的世界里,测试是确保代码质量不可或缺的一环。而JMOCK,作为一款强大的Java模拟框架,正是为了解决这一问题应运而生。"JMOCK-2.6.0"是一个专门用于项目测试的...
JMock 是一个流行的开源测试框架,专为Java开发者设计,用于模拟对象的行为,特别是在单元测试中。它允许程序员在不依赖真实对象的情况下测试代码,提高了测试的效率和隔离性。这篇详尽的讨论将深入JMock的核心概念...