【 数据Mock】项目开发之数据Mock

现在大部分项目都是前后端分离的项目,在我们实际开发中大概率会遇到后端需要先出假接口的情况,这时我们就用到了数据Mock,接下来我们就来介绍下如何通过读取json文件的方式进行mock数据。


1、创建mediaVisitMock.json文件

mediaVisitMock.json

{"id":1,"name":"小明","age":23,"addr":"北京市朝阳区","phone":123456,"sex":"男"}

2、编写测试类进行测试

import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.CommandLineRunner;
import org.springframework.core.io.Resource;
import org.springframework.core.io.support.PathMatchingResourcePatternResolver;
import org.springframework.core.io.support.ResourcePatternResolver;
import org.springframework.stereotype.Component;
import org.springframework.util.StreamUtils;
​
import java.io.InputStream;
import java.nio.charset.Charset;
​

@Slf4j
@Component
public class InitMockRunner implements CommandLineRunner {
    @Override
    public void run(String... args) throws Exception {
        String mockMediaVisitData = getMockMediaVisitData();
        JSONObject jsonObject = JSONObject.parseObject(mockMediaVisitData);
        System.out.println("jsonObject = " + jsonObject);
    }
    /**
    *从根目录下mediaVisitMock.json文件中读取json数据
    */
    private String getMockMediaVisitData() {
        String laststr = "";
        //获取容器资源解析器
        ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
        //获取所有匹配的文件
        try {
            Resource resources[] = resolver.getResources("mediaVisitMock.json");
            for (Resource resource : resources) {
                InputStream input = resource.getInputStream();
                laststr = StreamUtils.copyToString(input, Charset.forName("utf-8"));
            }
            log.info("文件读取成功:" + laststr);
        } catch (Exception e) {
            log.info("错误信息:" + e);
        }
        return laststr;
    }
}

使用的时候直接在service层调用getMockMediaVisitData()读取mock的json文件进行数据mock即可

Jmockdata(再也不用苦逼的造测试数据了) Jmockdta是一款实现模拟JAVA类型或对象的实例化并随机初始化对象的数据的工具框架。单元测试的利器。     The plug-in of Jmockdata what through random algorithm mock java data.   Jmockdata插件通过随机算法模拟Java数据.   版本信息 Jmockdata-2.0 发布时间 2017-02-03 Jmockdata-1.0 发布时间 2017-01-04 具体介绍和用法可以参考如下:   0. 模拟数据入口方法 JMockData.mock(JmockDataWrapper) 1. 被模拟数据必须继承JmockDataWrapper经过它的包装 2. 被模拟的数据最好是plain bean,只提供getter,setter,has,is方法的才可以被模拟 3. 框架默认实现了40个元数据类型的数据模拟器包括:   byte.class,Byte.class,byte[].class,Byte[].class, short.class,Short.class,short[].class,Short[].class, int.class,Integer.class,int[].class,Integer[].class, long.class,Long.class,long[].class,Long[].class, float.class,Float.class,float[].class,Float[].class, double.class,Double.class,double[].class,Double[].class, boolean.class,Boolean.class,boolean[].class,Boolean[].class, char.class,Character.class,char[].class,Character[].class, String.class,String[].class, BigDecimal.class,BigDecimal[].class, BigInteger.class,BigInteger[].class, Date.class,Date[].class 通过对以上基本元数据类型的模拟实现,本框架可以轻松模拟由以上元数据结构组成的BEAN、LIST、SET、ARRAY等复杂深度的数据结构的数据模拟。   4. 可以通过JmockDataContext 获取模拟过程的所有上下文信息,甚至可以打印整个模拟类型树   5. 可以通过JMockDataManager 注册模拟数据类型,重写模拟数据算法,注册模拟数据类拦截器等 6. 可以通过实现MockData来实现一个模拟数据类型 7. 可以通过实现JmockDataTemplate,或者继承JmockDataTemplateDefault来重写模拟数据算法 8. 可以通过实现JmockDataInterceptor来实现一个拦截器 9. 具体示例实践请参考https://github.com/jsonzou/jmockdata-demo 10. 有问题或者对本框架有新的想法,请联系我, 作者:jsonzou 标签:Jmockdata
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值