你看我们的测试连异步操作都还可以无耻地判等。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里,看那样似省事,行数在测试里都还回来了。
【编辑推荐】
- 开辟者必备的法度榜样调试利器,来找到合适你的那一款!
- Google进级App Engine防火墙:便利开辟者限制特定IP
- Python开辟者面向文档编程的┞俘确姿势
- 八款常用的Python GUI开辟框架推荐
- Web 开辟者须要知道的 12 个终端敕令
推荐阅读
如不雅说有什么好的博客文┞仿推荐,ibireme 的 iOS 保持界面流畅的技能 这篇堪称业界毒瘤,墙裂推荐反复浏览。这篇文┞仿中讲解了很多的优化点,我本身总结了下收益最大年夜的两个优化点>>>详细阅读
本文标题:React全家桶与前端单元测试艺术
地址:http://www.17bianji.com/lsqh/37291.html
1/2 1