您的位置:首页 > 编程语言 > Java开发

java 测试框架 JMOCK使用

2012-08-06 08:42 405 查看
1. JMOCK简介

2. JMOCK原理

2.1 capture expection

2.2 capture invokation

3. 扩展JMOCK

package com.amazon.oih.fasturl.config.oihscope;

import java.util.*;

import oracle.net.aso.p;

import org.hamcrest.Description;
import org.jmock.api.Action;
import org.jmock.api.Invocation;

public class JMockExt {

interface Provider{
Object get();
}

public static class ReturnInstanceAction implements Action {
private Provider provider;

public ReturnInstanceAction(Provider p ){
this.provider = p;
}

@Override
public void describeTo(Description description) {
description.appendText(" return a instance created by " + p.class.getSimpleName());
}

@Override
public Object invoke(Invocation invocation) throws Throwable {
return provider.get();
}
}

public static class ReturnInstancesAction implements Action {
private Provider provider;
private int num;

public ReturnInstancesAction (Provider p ,int num){
this.provider = p;
this.num = num;
}

@Override
public void describeTo(Description description) {
description.appendText(" return "+ num +" instances created by " + p.class.getSimpleName());
}

@Override
public Object invoke(Invocation invocation) throws Throwable {
List list = new ArrayList();
int i= 0;
while(i++ < num){
list.add(provider.get());
}
return list;
}
}

public static class Expectations extends org.jmock.Expectations{
public static Action returnInstance(Provider provider) {
return new ReturnInstanceAction(provider);
}
public static Action returnInstances(Provider provider, int num) {
return new ReturnInstancesAction(provider, num);
}
public static Action returnInstances(Provider provider) {
return new ReturnInstancesAction(provider, 1);
}
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐