作家
登录

React全家桶与前端单元测试艺术

作者: 来源: 2017-09-11 10:01:00 阅读 我要评论

  • }) 
  • 除了is办法以外,我们还会用到deepEqual和true办法。好,你如今已经完全会用AVA了。其他的功能我们完全不关怀。

    1. ava --update-snapshots 

    Redux测试 (Model测试)

    1. render(<Greeter name="React"/>, document.body) 

    Redux 就是用一堆Reducer函数来reduce所有事宜用来做全局Store的状况机( FSM )。用源码本身介绍它甚至比用上一小段文字介绍还快:

    1. const createStore = reducer => { 
    2.   let state, listeners = [] 
    3.  
    4.   const dispatch = action => { 
    5.     state = reducer(state, action
    6.     listeners.forEach(listeners => listeners()) 
    7.   } 
    8.  
    9.   return { 
    10.     getState() { return state }, 
    11.     subscribe(listener) { 
    12.       listeners.push(listener) 
    13.       return () => { listeners = listeners.filter(l => l !== listener)} 
    14.     }, 
    15.     dispatch, 
    16.   } 

    reducer几乎包含了我们所有前端营业的核心,测好它就测了大年夜半。它们全都是 (State, Action) => nextState 情势的纯函数,无异步操作,用swtich case来模仿模式匹配来处理事宜。比如用喜闻乐见的简陋版的┞坊泊车场举例:

    1. export const parkingLot = (state = [], action) => { 
    2.   switch (action.type) { 
    3.     case 'parkingLot/PARK'
    4.       return [action.car, ...state] 
    5.     case 'parkingLot/PICK'
    6.       const [_, ...rest] = state 
    7.       return rest 
    8.     defaultreturn state 
    9.   } 

    Reducer是这么竽暌姑的:

    1. const store = createStore(parkingLot) 
    2. store.subscribe(() => renderMyView(store.getState())) 
    3. store.dispatch({ type: 'parkingLot/PARK' }) 

    好,如今你又懂得了Redux。那我们可以看看怎么测试膳绫擎的parkingLot reducer了:

    1. test('parking lot', t => { 
    2.   const initial = parkingLot(undefined, {}) 
    3.   t.deepEqual(initial, [], 'should be empty when init'

        推荐阅读

        iOS中关于列表滚动流畅的一些探讨

      如不雅说有什么好的博客文┞仿推荐,ibireme 的 iOS 保持界面流畅的技能 这篇堪称业界毒瘤,墙裂推荐反复浏览。这篇文┞仿中讲解了很多的优化点,我本身总结了下收益最大年夜的两个优化点>>>详细阅读


      本文标题:React全家桶与前端单元测试艺术

      地址:http://www.17bianji.com/lsqh/37291.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)