作家
登录

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

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

  •  
  •   const request = gen.next().value 
  •   t.deepEqual(request, call(fetch'/login', { method: 'POST', body: { name'John'password'super-secret-123'} })) 
  •   const response = gen.next({ token: 'non-human-readable-token' }).value 
  •   t.deepEqual(response, put({ type: 'login/SUCCEEDED', token: 'non-human-readable-token' })) 
  •   const failure = gen.throw('You code just exploded!').value 
  •   t.deepEqual(failure, put({ type: 'login/FAILED', error: 'You code just exploded!'})) 
  • }) 
  • 你看我们的测试连异步操作都还可以无耻地判等。call就是以某些参数调用某个函数,put就是发事宜。

    可以试着把fetch覆盖抽空函数,你可以发明实际上副感化根本没产生,“fetch到底是个啥”对测试一点影响都没有。你可能发清楚明了,其实saga就是用数据构造表示感化,而不焦急履行,在这里又走回幂等的老路了。这和React Virtual DOM的思路异曲同工。

    起首是文┞仿开首提到的TL;DR的内容。函数是个好器械,测函数不等同“测1+1=2”这种没养分的单位,函数是可以包含很大年夜高低文的。这种输入输出的模型既简荡竽暌怪有效。

    我们祛除了mock,削减了依附,并发了测试,加快了速度,降低了门槛,削减了测试路径等等。如不雅你的React项目本来在TDD的边沿扭捏不定,如今是时刻入一发这种唯快不破了。

    全家桶让Model/View/Async这三者之间的界线变得清楚,任由营业变革,它们之间的职责是不会互相替代的,如许你测它们的时刻才更轻易。后端之所以测试稳定是因为有API。所以想让前端好测也是一样的思路。

    文中很多多少次提到“幂等”这个概念,幂等可以让你削减测试的case,写代码更有底气。抛开测试不谈,代码幂等的处所越多,法度榜样越可控可预期。扑晡残细思虑一下我们的实际项目,大年夜部分营业都是异常肯定的,并没有什么随机身分。为什么最后照样会出现很多随机现象呢?

    声明优于敕令,描述产生什么、想要什么比亲自指导具体步调好。

    消息机制优于调用机制。Smalltalk > Simula。其实RESTful API必定程度上也是消息。简单的对象直接互相感化是完全没问题的,人作为复杂对象重要经由过程说话序言来交换,听到内容思虑个中的含义,而不是靠肢体接触,或者像连体婴儿那样共享器官。所以才有一句鄙谚叫“你的对象都想成长为Actor”。

    大年夜View的几种测试里我们也可以看到,测试并不是只有测或者不测这两种选择,我们老提测试金字塔,意思是测试可多可少,不合层级的测试保持正金字塔外形比较健康,像今天我们说的就可以大年夜幅加宽你测试金字塔的底座。所以你的项目有可能测试过少,也可能测试过度,所以时光可以动态调剂。

    没用全家桶的项目可以把“大年夜Model小View”的思惟拿走,如许更轻易于专注价值。尽量抽出Model层,不要把逻辑写在VM里,看那样似省事,行数在测试里都还回来了。

    【编辑推荐】

    1. 开辟者必备的法度榜样调试利器,来找到合适你的那一款!
    2. Google进级App Engine防火墙:便利开辟者限制特定IP
    3. Python开辟者面向文档编程的┞俘确姿势
    4. 八款常用的Python GUI开辟框架推荐
    5. Web 开辟者须要知道的 12 个终端敕令
    【义务编辑:未丽燕 TEL:(010)68476606】

      推荐阅读

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

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


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

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

    关键词: 探索发现

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

    网友点评
    自媒体专栏

    评论

    热度

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