What is a Mock Object?
Unit testing is the testing of software units in isolation.
However, most units do not work alone, but they collaborate
with other units. To test a unit in isolation, we have to
simulate the collaborators in the test.
A Mock Object is a test-oriented replacement for a collaborator.
It is configured to simulate the object that it replaces in a simple way.
EasyMock has been the first dynamic Mock Object generator, relieving
users of hand-writing Mock Objects, or generating code for them.
一个将被Mock:使用JDBC连接DB,得到Table Student的记录
package wei.peng.easymock;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
/**
* 一个用于连接DB得到数据记录的类
* @author WPeng
*/
public class BeMockObject {
public int getRecordNum(){
int record = 0;
Connection conn;
Statement stmt;
try {
// Load JDBC driver
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
// Connection
String url = "jdbc:mysql://MyDbComputerNameOrIP:3306/myDatabaseName";
conn = DriverManager.getConnection(url, "wpeng", "***" );
// Create Statement
stmt = conn.createStatement();
// Query
String sql = "SELECT COUNT(*) FROM student";
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
record = rs.getInt(1);
}
try {
if(!conn.isClosed()){
conn.close();
}
} catch (SQLException e2) {
// TODO: handle exception
}
} catch (Exception e) {
// TODO: handle exception
}
return record;
}
}
一个JUnit Test Case:Mock一个BeMockObject
package wei.peng.easymock;
import org.easymock.EasyMock;
import junit.framework.TestCase;
public class MainTest extends TestCase{
public void testGetRecordNum(){
int expected = 100;
BeMockObject beMockObject = EasyMock.createMock(BeMockObject.class);
EasyMock.expect(beMockObject.getRecordNum()).andReturn(100);
EasyMock.replay(beMockObject);
assertEquals(expected, beMockObject.getRecordNum());
}
}
分享到:
相关推荐
EasyMock是一款强大的模拟框架,主要用于Java单元测试。它允许开发者创建和控制对象的模拟行为,以便在测试过程中隔离被测试代码。在这个“EasyMock的安装与部署所需全部文件.zip”压缩包中,包含了在Windows环境下...
EasyMock 是一个强大的Java模拟框架,它允许开发者在单元测试中创建和控制对象的行为,以模拟复杂的依赖关系。这个框架的出现使得测试更加简洁、独立,可以有效地验证代码的正确性,而无需运行实际的依赖服务或库。...
Easymock是一个流行的Java单元测试框架,它允许开发者创建模拟对象来测试代码。这个框架使得测试更加简单,因为你可以模拟任何复杂的交互和行为,而无需实际运行依赖的组件。在给定的压缩包文件中,包含两个核心的...
EasyMock 3.2 是一个流行的开源Java模拟框架,它为开发者提供了强大的单元测试支持。在Java开发中,单元测试是验证代码独立模块正确性的关键步骤。EasyMock可以帮助程序员模拟对象的行为,使得测试过程更加可控,...
EasyMock主要是为测试提供模拟数据,比如你可以模拟HttpServletRequest。
EasyMock是Java编程中的一款强大的模拟框架,它允许开发者在单元测试中创建和控制对象的行为,以便于测试代码的特定部分。本手册主要关注的是EasyMock的2.4版本,这是一个广泛使用的版本,包含了丰富的功能和改进。...
【EasyMock介绍】 EasyMock是一款强大的Java模拟框架,它允许开发者在进行单元测试时创建和控制对象的行为。这个工具使得测试更加独立,可以隔离被测试代码与其他依赖的系统,从而提高测试的效率和质量。EasyMock的...
EasyMock 是一个强大的开源Java模拟框架,用于进行单元测试。它允许开发者创建模拟对象来代替真实的依赖,以便在测试过程中可以完全控制它们的行为。在这个"EasyMock 使用案例(含lib)"中,我们将会深入探讨如何...
EasyMock 是一个强大的开源工具,专门用于生成模拟对象(Mock Objects),在软件开发特别是单元测试领域,它扮演着至关重要的角色。这个工具的版本为2.5.2,提供了对Java编程语言的支持,使得开发者能够方便地创建和...
5. **扩展EasyMock**:EasyMock还可以与其它库结合,如`EasyMock.ClassExtender`用于创建扩展已有的类的模拟对象。 6. **Nice Mocks 和 Strict Mocks**:Nice Mocks默认允许所有未预期的调用,而Strict Mocks则会抛...
Easymock是一款强大的Java单元测试工具,它允许开发者创建模拟对象来协助测试代码。这款框架使得测试变得简单,因为它可以模拟任何接口的行为,而无需实际实现这些接口。下面我们将详细探讨Easymock的基本概念、工作...
在单元测试领域,Easymock和PowerMock是两个非常重要的工具,它们允许开发者模拟复杂的对象行为以便于测试。这两个库都是JUnit框架的扩展,帮助我们编写更清晰、更易于维护的测试代码。 Easymock3.1是Easymock的一...
EasyMock 是一个流行的 Java 单元测试框架,它帮助开发者创建模拟对象来测试目标类的行为。这篇文档将深入探讨 EasyMock 的使用方法和原理,以便更好地理解和应用这一工具。 首先,让我们理解 EasyMock 的核心概念...
Easymock是一款强大的Java单元测试工具,它允许开发者创建模拟对象来测试代码。这个压缩包包含的是Easymock的3.2版本,其中包括文档、源码和示例,对于学习和理解Easymock的工作原理以及如何在实际项目中使用它非常...
EasyMock 是一套通过简单的方法对于指定的接口或类生成 Mock 对象的类库,它能利用对接口或类的模拟来辅助单元测试。本文将对 EasyMock 的功能和原理进行介绍,并通过示例来说明如何使用 EasyMock 进行单元测试。 ...
而JMock和EasyMock则是两种广泛使用的Java单元测试框架,它们允许开发者模拟对象的行为和交互,以便于测试复杂的系统。本资源包含JMock 2.5.1和EasyMock 3.0的库文件,使得开发者在进行单元测试时无需再四处寻找相关...
《深入理解easymock.jar:Java单元测试的利器》 在软件开发中,单元测试是一种重要的质量保证手段,它允许开发者验证代码的各个部分独立工作是否正常。Easymock是一个流行的Java模拟框架,其核心是easymock.jar库,...