当前访客身份:游客 [ 登录 | 加入开源中国 ]

代码分享

当前位置:
代码分享 » Java  » 服务端开发
yanjilin

mock父类的成员变量

yanjilin 发布于 2016年08月19日 20时, 0评/428阅
分享到: 
收藏 +0
0
mock父类的成员变量,用于特殊的场景比如,要测试的类的成员变量继承于父类并且需要mock,但是该成员变量是通过注解注入(spring,osgi),父类的没有提供setXxx方法。
标签: <无>

代码片段(1) [全屏查看所有代码]

1. [代码][Java]代码     跳至 [1] [全屏预览]

import java.lang.reflect.Field;

import org.apache.commons.lang3.reflect.FieldUtils;
import org.mockito.Mockito;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

/**
 * mock工具类
 * 
 * @author James
 * @version $Id: MyMockUtil.java, v 0.1 2016年8月22日 上午10:50:59 James Exp $
 */
public class MyMockUtil {

    private static final Logger LOGGER = LoggerFactory.getLogger(MyMockUtil.class);

    /**
     * mock父类的成员变量
     * 
     * @param target
     * @param classToMock
     * @param fieldName
     * @return
     */
    public static <T> T mock(Object target, Class<T> classToMock, String fieldName) {
        T mock = Mockito.mock(classToMock);
        Field field = FieldUtils.getField(target.getClass(), fieldName, true);
        try {
            FieldUtils.writeField(target, field.getName(), mock, true);
        } catch (IllegalAccessException e) {
            LOGGER.error(e.getMessage(), e);
        }
        return mock;
    }

}


开源中国-程序员在线工具:Git代码托管 API文档大全(120+) JS在线编辑演示 二维码 更多»

开源从代码分享开始 分享代码
yanjilin的其它代码 全部(2)...