Open JimmyLv opened 6 years ago
哼,你看你不跳槽都不怎么讨论 TDD 的…
因为以前直接做就是了呀,哪有这么多bbb的…🤣
项目上的 Cypress Dashboard 已经搭建好放到 CI,团队层面的重构正在进行当中:
而个人的 E2E TEST 还有待进一步实践:
前端单元测试,真的很迷茫。 TDD到底该怎么玩, 每次看着Cypress的例子很动心,但是又感觉这样的E2E反馈相对会慢,而且E2E应该尽量少啊 那么就放弃最开始就写E2E,改成最开始只给组件单独做UT,但是组件级别的UT又很细节和冗余,修改频繁 那么如果不是给组件做UT,给vuex/redux store做TDD又很不容易坚持,而且BFF把大部分数据逻辑转移到了后端, 而前端大部分时间都在Styling和build配置上🤣
但是 前端花费过多时间在 Styling和 Build 配置上的状况也在改善中,CLI 之类的基础设施和开源 UI 库都在随着社区越变越好,借助 AntDesign Pro 就是个典型例子, 前端 TDD 其实我也还在一直探索中,「大前端」(包括BFF,特指由前端有能力来写的Node BFF)的能力和话语权越来越重,可以 TDD 的机会也在变多。
按照测试金字塔分层,这样的具体实践是比较合理的:
所以衍生出来的问题就是,为了更方便在前端做 TDD,基础设施一定要搭建完好。
👍: 另外e2e级别做TDD的路数,我不确定方向是不是对"
E2E 级别做 TDD,我的理解和想尝试的点就在于: 我一个页面只写一个 T,然后就先放着, 然后我把组件的骨架先搭出来,带上
[data-cy='cypress-id']
然后就通过 UTDD 把数据操作撸出来,并且产出mock data即业务fixtures 然后再通过 Storybook 把具体的组件样式撸完,刚好注入前面的业务fixtures,然后打个快照,
前面谈论的是初写的时候,如果是修改代码,也分几个层级:
再者,我们如果用了antd这样的UI组件的话,那其实 Storybook 中的低维度组件需要自己真实去写的部分很少的,更多的是如何拼装出自己的业务UI组件(即UI+业务数据),而Snapshot快照的是 Antd组件集合+我们自己的theme就好。
我是特别想要试试,在项目上搞起来,感觉每个环节都有了反馈,大的小的,快的慢的。
重点研究一下 Cypress 并实践 ATDD。
是的呢 而且为什么需要测试呢? 我指的是 测那么多技术复杂度没有意义呀?
技术复杂度为什么要我们开发来测试呀? 比如说,REST API的测试, 少一个字段多一个字段,这种测起来有何意义? 为什么不能直接用直接让invoker来决定到底有多少字段
我就在想,有没有一种方式,让测试更有意义,测到该测的地方去。
而TDD也是一样的,对哪些内容该TDD,还是说所有东西都TDD呢? 还是Tasking+验证方式,最为关键。
至于验证方式,是不是UT,我觉得可以有更多讨论。
假如我们有秒级反应的CI作为流水线, 假如我们有秒级反应的AI作为“真实”用户, 那我每写完一行代码,立马CI构建出“真实”产品,然后AI帮我测完所有“真实”场景,然后给我一个反馈,是不是也很完美?
嗯,Spring帮我们autowried,凡是依赖都可以mock掉 但其实js里面所有import也可以mock掉,🤣
前端的反馈,我觉得还是不如搞个4屏吧
哈哈哈,设计稿、Chrome显示页面、IDE、Chrome DevTool
当然要呀,🤣 最好,devtool和file system连起来 试验CSS的时候可以直接save
CSS 阻碍了一切效率 尽管我优化查文档的效率可以达到秒级,但又有何用?还不是要查
看到一篇 e2e testing driven的文章 我觉得值得推荐下,Learn TDD in Vue | Learn TDD