EasyMock的capture的使用

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所有的函数调用的参数。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值