EasyMock里面的Capture接口提供了捕获函数调用参数的方法,在mock中,我们要验证参数传递参数的的情况。这个里面可以设置Capture的类型。
不废话了,直接上代码:
import java.util.Locale;
public interface GeographicalDao {
public void insertLocale(Locale locale);
}
下面是一个service接口
import java.util.Locale;
public class GeographicalService {
private GeographicalDao geographicalDao;
public void setGeographicalDao(GeographicalDao geographicalDao) {
this.geographicalDao = geographicalDao;
}
public void saveGeographical(String language, String country) {
geographicalDao.insertLocale(new Locale(language, country));
}
}
最后上测试代码:
import java.util.List;
import java.util.Locale;
import org.easymock.Capture;
import org.easymock.CaptureType;
import org.easymock.EasyMock;
import org.junit.Test;
public class GeographicalServiceTest {
@Test
public void captureTest(){
String language = "us";
String country = "UK";
Capture<Locale> localCapture = new Capture<Locale>(CaptureType.ALL);
GeographicalDao mock = EasyMock.createMock(GeographicalDao.class);
mock.insertLocale(EasyMock.capture(localCapture));
EasyMock.expectLastCall().times(2);
EasyMock.replay(mock);
GeographicalService service = new GeographicalService();
service.setGeographicalDao(mock);
service.saveGeographical(language, country);
language = "zh";
country = "CN";
service.saveGeographical(language, country);
EasyMock.verify(mock);
List<Locale> locales = localCapture.getValues();
for(Locale local : locales){
System.out.println(local.getLanguage() + "_" + local.getCountry());
}
}
在这个里面,我们capture所有的函数调用的参数。
分享到:
相关推荐
easymock 的使用方法简介 easymock 是一个开放源码的 mock 对象库,用于帮助开发者快速轻松地创建用于单元测试的 mock 对象。 EasyMock 使用动态代理,让开发者只需一行代码就能够创建任何接口的基本实现。 ...
在这个"EasyMock 使用案例(含lib)"中,我们将会深入探讨如何利用EasyMock进行Java单元测试,并通过具体的例子——EasyMockDemo来讲解其用法。 首先,EasyMock的基本理念是让你能够定义模拟对象的行为,比如它应该...
【EasyMock的使用场景】 EasyMock适用于以下几种情况: 1. **依赖隔离**:当被测试类依赖于其他复杂或难以配置的外部服务或资源时,EasyMock可以通过模拟这些依赖,使测试环境更加可控。 2. **测试驱动开发(TDD...
本文将对 EasyMock 的功能和原理进行介绍,并通过示例来说明如何使用 EasyMock 进行单元测试。 Mock 方法是单元测试中常见的一种技术,它的主要作用是模拟一些在应用中不容易构造或者比较复杂的对象,从而把测试与...
EasyMock是Java编程中的一款强大的模拟框架,它允许开发者在单元测试中创建和控制...通过阅读《EasyMock使用简明手册》和解压后的easymock2.4.zip文件,开发者可以深入理解并掌握如何有效地使用EasyMock进行单元测试。
在实际使用EasyMock时,我们通常会遵循以下步骤: 1. **创建模拟对象**:首先,你需要通过`EasyMock.createMock()`方法创建一个模拟对象。例如,如果你有一个名为`MyInterface`的接口,你可以这样创建它的模拟对象...
EasyMock和Mockito是两个广泛使用的Java模拟框架,它们可以帮助开发者在隔离环境中测试代码,避免了依赖其他组件或服务的复杂性。本文将详细介绍这两个工具的使用方法、原理和差异。 **EasyMock** EasyMock是一个...
- **创建模拟对象**:你可以使用`EasyMock.createMock()`方法创建一个模拟对象,然后通过`EasyMock.replay()`进入“播放”模式,让模拟对象按照预期执行。 - **设置预期**:使用`expect()`方法设置对模拟对象的期望...
本文将深入探讨EasyMock的使用方法及其工作原理,帮助开发者更好地理解和运用这一工具。 ### 1. EasyMock简介 EasyMock 是一个轻量级的模拟框架,它的核心功能是为测试提供假对象(mock objects),这些对象可以...
例如,使用`@Before`注解设置测试前的准备工作,使用`@Test`注解定义测试方法,并在其中使用EasyMock的API进行模拟和验证。 总之,EasyMock 3.2 提供了一个强大而灵活的模拟工具,帮助开发者编写高质量的单元测试,...
为了部署和使用EasyMock,你需要将源码导入一个支持Java开发的IDE(如Eclipse或IntelliJ IDEA),然后按照提供的说明进行编译和配置。 在部署流程中,一般步骤如下: 1. 安装Node.js:访问官网下载Windows安装包,...
2. **创建模拟对象**:使用Easymock的`createMock`或`createNiceMock`方法创建模拟对象。 3. **设置预期**:通过`expect`方法设定模拟对象的方法调用预期。 4. **启动测试**:调用`replay`方法开始执行模拟。 5. ...
在压缩包中的"easymock"文件中,可能包含了Easymock的使用教程、源代码示例和相关文档,这些都是深入理解和学习Easymock的好资源。通过阅读这些材料,你可以更好地掌握如何在实际项目中运用Easymock进行单元测试,...
本文将深入探讨EasyMock的使用方法及其工作原理,帮助开发者更好地理解和运用这一工具。 ### EasyMock的基本概念 - **模拟对象(Mock Object)**:在测试中,模拟对象是替代真实对象的类,它会根据预定义的行为来...
这个压缩包包含的是Easymock的3.2版本,其中包括文档、源码和示例,对于学习和理解Easymock的工作原理以及如何在实际项目中使用它非常有帮助。 Easymock的主要功能是模拟(mock)Java接口的行为,使得测试可以独立...
5. **验证行为**:测试完成后,使用`EasyMock.verify()`方法检查模拟对象是否按照预期被调用了。这有助于确保你的代码正确地使用了模拟对象。 ```java EasyMock.verify(myServiceMock); ``` 6. **清理资源**:...
easymock.jar文件是Easymock框架的核心库,包含了所有必要的类和接口,使得开发人员可以直接在项目中引入并使用Easymock的功能。在给定的压缩包中,我们看到的是easymock-3.3版本,这是Easymock的一个稳定版本,包含...