【mock service系列】使用 Rosie mock JS数据

Rosie? factory_girl?

如果说是单纯命名上面,是受一幅画的影响,画里面的妹子叫Rosie;
如果是项目灵感其实是来自于factory_girl,factory_girl在github以及segmentfault上的资料都有一些,百度也找得到,但是关于Rosie的着实不多,所以就想share下。
图片描述

What

Rosie的作用主要就是构建一些js的数据对象,大部分使用场景也是在测试中。

虽然这部分和mock service没有直接的关系,但是因为在整个涉及到api的test过程中(非单元测试),我们的套路一般是用工具生成假的数据对象(结构和真实的一致),然后把数据传给对应的mock service,所以暂时也把本文放在mock service 系列。

How

一般使用npm或者yarn 添加依赖并安装js包就可以使用。

具体使用时候,一般会有一个factory用来构建,另外一个在需要数据的地方进行直接引入。好处是数据构建逻辑和业务处理的逻辑可以隔离。
在object builder 部分

import { Factory } from 'rosie'
export default new Factory()
  .sequence('id')
  .attr('Type', () => 'User')
  .attr('Name', {first: 'Yangyang', last:'Cao')
  .attr('Birthday':'1992-01-01')
  .attr('Job', {company:'TW',position:'Developer'})

在使用的部分

 import ProfileFactory from './fixtures/profile'
 beforeEach(() => {
    parameters = {
      ID: '00124B00000zU5f17AE',
      Profile: ProfileFactory.build()
    }
  })

其他的使用方法也是存在的,具体请参考github

Why

为什么使用,本人是因为之前每次在before each 或者自己写builder太麻烦了,最常见的是,在一个已有的obeject上面增加新的属性,烦不胜烦。

When

当你厌倦已有的无论是字面量生成mock data,还是单独数据builder 生成mock data的方式。
感觉用Rosie更符合语义以及函数思维。

缺点

暂时没发现,增加了新的依赖算吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值