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更相符语义以及函数头脑。
瑕玷
临时没发明,增添了新的依靠算吗?