【催学社】前端的单元测试课(1)/
│   ├── 1.视频/
│   │   ├── 001.01-为什么写测试-更高阶的调试手法-提高开发效率.mp4 (71.93 MB)
│   │   ├── 002.02-单元测试在修改代码时的好处.mp4 (47.85 MB)
│   │   ├── 003.03-写测试的好处-活文档&改善程序设计.mp4 (43.15 MB)
│   │   ├── 004.04-自动化思维-功能验证.mp4 (52.30 MB)
│   │   ├── 005.05-自动化思维-定位&修复bug.mp4 (70.26 MB)
│   │   ├── 006.06-单元级别的功能测试.mp4 (45.26 MB)
│   │   ├── 007.07-写测试的顺序-后补测试.mp4.mp4 (79.51 MB)
│   │   ├── 008.08-写测试的顺序-通过单元测试替换手动验证.mp4 (50.06 MB)
│   │   ├── 009.09-写测试的顺序-先写测试后实现 TDD.mp4 (80.47 MB)
│   │   ├── 010.10-不写测试的原因.mp4 (42.15 MB)
│   │   ├── 011.11-编写第一个单元测试.mp4 (92.92 MB)
│   │   ├── 012.12-掌握 Vitest 的基础 API.mp4.mp4 (182.86 MB)
│   │   ├── 013.13-掌握 Vitest 的调试技巧.mp4.mp4 (65.79 MB)
│   │   ├── 014.14-实现 mini-test-runner.mp4.mp4 (133.63 MB)
│   │   ├── 015.15-对比 Vitest 和 Jest 之间的差异.mp4 (69.87 MB)
│   │   ├── 016.16-准备测试数据的三种方式.mp4 (73.66 MB)
│   │   ├── 017.17-后门操作准备数据的方式.mp4.mp4 (27.23 MB)
│   │   ├── 018.18-最小准备测试数据原则.mp4 (51.71 MB)
│   │   ├── 019.19-程序的间接输入-依赖函数调用-stub 的应用.mp4 (71.40 MB)
│   │   ├── 020.20-程序的间接输入-第三方库&对象&class&常量.mp4.mp4 (60.70 MB)
│   │   ├── 021.21-程序的间接输入-环境变量-全局global-间接层处理技巧.mp4 (41.80 MB)
│   │   ├── 022.22-程序的间接输入-依赖注入.mp4.mp4 (83.71 MB)
│   │   ├── 023.23-状态验证.mp4 (66.18 MB)
│   │   ├── 024.24-行为验证.mp4.mp4 (86.47 MB)
│   │   ├── 025.25-不知道验证什么-完美主义&功能的目的&小步走.mp4.mp4 (41.37 MB)
│   │   ├── 026.26-可预测性-随机数-日期date.mp4 (47.16 MB)
│   │   ├── 027.27-快速反馈-处理异步代码time—promise.mp4 (93.40 MB)
│   │   ├── 028.28-API 的多种测试方案.mp4 (170.12 MB)
│   │   ├── 029.29-参数化验证.mp4 (62.08 MB)
│   │   ├── 030.30-手动测试到单元测试的认知转变.mp4 (81.20 MB)
│   │   ├── 031.31-测试的基本策略-正向测试&反向测试&异常测试.mp4 (60.10 MB)
│   │   ├── 032.32-不是所有代码都值得写测试.mp4 (28.74 MB)
│   │   ├── 033.33-掌握使用 test double 测试替身的核心思想.mp4 (31.98 MB)
│   │   ├── 034.34-测试替身的类型-dummy-stub-spy-mock-fake.mp4 (99.22 MB)
│   │   ├── 035.35-独居测试和群居测试.mp4 (67.95 MB)
│   │   ├── 036.36-测试的拆卸.mp4 (58.74 MB)
│   │   ├── 037.37-Vitest 模拟浏览器环境&自定义环境.mp4 (53.80 MB)
│   │   ├── 038.38-给测试命名的艺术.mp4 (41.45 MB)
│   │   ├── 039.39-调用同一模块内的函数会 mock 失败.mp4 (18.02 MB)
│   │   ├── 040.40-snapshot 快照测试.mp4 (49.64 MB)
│   │   ├── 041.Vue实战-01-项目概述.mp4 (37.98 MB)
│   │   ├── 042.Vue实战-1.1-登录注册功能介绍.mp4 (9.79 MB)
│   │   ├── 043.Vue实战-02-启动项目的方式.mp4 (40.86 MB)
│   │   ├── 044.Vue实战-03-第一个组件 TheHeader-测试 useRouter 的策略.mp4 (76.26 MB)
│   │   ├── 045.Vue实战-04-测试 useRouter 的最佳策略.mp4 (124.10 MB)
│   │   ├── 046.Vue实战-05-重构测试 useRouter 的代码 提炼公共 helper 函数.mp4 (53.28 MB)
│   │   ├── 047.Vue实战-06-测试 window.open 的方式&重构整理 theHeader.mp4 (64.41 MB)
│   │   ├── 048.Vue实战-07-第二个功能 command 搜索功能的介绍和代码实现.mp4 (65.26 MB)
│   │   ├── 049.Vue实战-08-测试 commandModal&键盘事件.mp4 (121.03 MB)
│   │   ├── 050.Vue实战-09-测试 search&timer&promise&独居测试.mp4 (135.12 MB)
│   │   ├── 051.Vue实战-10-测试 searchTasks & 测试 pinia.mp4 (140.19 MB)
│   │   ├── 052.Vue实战-11-测试 searchCommands.mp4 (43.18 MB)
│   │   ├── 053.Vue实战-12-群居测试 search 功能.mp4 (120.14 MB)
│   │   ├── 054.Vue实战-13-测试 tasks store - addTask 功能.mp4 (127.26 MB)
│   │   ├── 055.Vue实战-14-测试 tasks store(2).mp4 (44.63 MB)
│   │   ├── 056.Vue实战-15-测试 tasks store(3).mp4 (77.76 MB)
│   │   ├── 057.Vue实战-16-测试 tasks store(4) - 通过单元测试抓bug.mp4 (69.03 MB)
│   │   ├── 058.Vue实战-17-测试 tasks(5) & 尝鲜TDD.mp4 (108.29 MB)
│   │   ├── 059.Vue实战-18-解决 indexedDB is not defined 报错.mp4 (30.16 MB)
│   │   ├── 060.Vue实战-19-http 模块的功能介绍.mp4 (43.65 MB)
│   │   ├── 061.Vue实战-20-测试 http 模块.mp4 (110.29 MB)
│   │   ├── 062.Vue实战-21-使用 TDD 的方式测试 router 模块.mp4 (123.25 MB)
│   │   ├── 063.Vue实战-22-测试 gotoLogin & 重构 router 测试逻辑.mp4 (70.85 MB)
│   │   ├── 064.Vue实战-23-测试登录表单的正确方式-单元测试的三要点.mp4 (93.10 MB)
│   │   ├── 065.Vue实战-24-使用 snapshot 测试表单 rule.mp4 (22.09 MB)
│   │   ├── 066.Vue实战-25-测试拖拽功能.mp4 (98.82 MB)
│   │   ├── 067.推箱子-01-项目概述.mp4 (39.82 MB)
│   │   ├── 068.推箱子-02-初始化项目.mp4 (29.58 MB)
│   │   ├── 069.推箱子-03-实现地图.mp4 (63.30 MB)
│   │   ├── 070.推箱子-04-实现玩家&移动.mp4 (142.65 MB)
│   │   ├── 071.推箱子-05-实现玩家碰撞墙.mp4 (100.21 MB)
│   │   ├── 072.推箱子-06-实现箱子的渲染.mp4 (72.97 MB)
│   │   ├── 073.推箱子-07-实现推箱子.mp4 (129.26 MB)
│   │   ├── 074.推箱子-08-实现箱子碰到墙&碰到箱子的检测.mp4 (53.50 MB)
│   │   ├── 075.推箱子-09-实现放置点的渲染.mp4 (27.22 MB)
│   │   ├── 076.推箱子-10-实现箱子检测放置点.mp4 (70.13 MB)
│   │   ├── 077.推箱子-11-实现游戏通关的检测.mp4 (72.16 MB)
│   │   ├── 078.推箱子-12-实现进入下一关-动态初始化游戏.mp4 (79.24 MB)
│   │   ├── 079.推箱子-13-实现进入下一关-切换游戏数据.mp4 (162.09 MB)
│   │   ├── 080.推箱子-14-阶段性总结.mp4 (37.73 MB)
│   │   ├── 081.推箱子-15-地图编辑器概述.mp4 (27.60 MB)
│   │   ├── 082.推箱子-16-实现路由的切换.mp4 (33.94 MB)
│   │   ├── 083.推箱子-17-实现地图编辑区.mp4 (40.29 MB)
│   │   ├── 084.推箱子-18-实现元素选择.mp4 (135.70 MB)
│   │   ├── 085.推箱子-19-实现动态设置地图的行和列-初始化.mp4 (48.19 MB)
│   │   ├── 086.推箱子-20-实现动态设置地图的行和列-更新行.mp4 (75.07 MB)
│   │   ├── 087.推箱子-21-实现动态设置地图的行和列-更新列.mp4 (38.41 MB)
│   │   ├── 088.推箱子-22-实现拖拽批量设置地图.mp4 (41.14 MB)
│   │   ├── 089.推箱子-23-实现放置玩家.mp4 (58.61 MB)
│   │   ├── 090.推箱子-24-实现显示当前选择的编辑元素.mp4 (19.88 MB)
│   │   ├── 091.推箱子-25-实现放置箱子.mp4 (74.11 MB)
│   │   ├── 092.推箱子-26-实现放置目标点.mp4 (54.27 MB)
│   │   └── 093.推箱子-27-实现数据展示区.mp4 (29.94 MB)
│   └── 2.资料/
│   │   ├── 大纲+代码.txt (0.00 MB)
│   │   └── front-end-testing-main/
│   │   │   ├── .gitignore (0.00 MB)
│   │   │   ├── docs/
│   │   │   │   ├── .vitepress/
│   │   │   │   │   ├── cache/
│   │   │   │   │   │   └── deps/
│   │   │   │   │   │   │   ├── _metadata.json (0.00 MB)
│   │   │   │   │   │   │   ├── package.json (0.00 MB)
│   │   │   │   │   │   │   ├── vue.js (0.29 MB)
│   │   │   │   │   │   │   └── vue.js.map (0.63 MB)
│   │   │   │   │   ├── config.js (0.01 MB)
│   │   │   │   │   └── theme/
│   │   │   │   │   │   ├── index.js (0.00 MB)
│   │   │   │   │   │   └── MyLayout.vue (0.00 MB)
│   │   │   │   ├── components/
│   │   │   │   │   └── CVideo.vue (0.00 MB)
│   │   │   │   ├── guide/
│   │   │   │   │   ├── 00-introduction.md (0.00 MB)
│   │   │   │   │   ├── 01-why-write-testing.md (0.00 MB)
│   │   │   │   │   ├── 02-automatic-thinking.md (0.00 MB)
│   │   │   │   │   ├── 03-unit-test-definition.md (0.00 MB)
│   │   │   │   │   ├── 04-when-writing-tests.md (0.00 MB)
│   │   │   │   │   ├── 05-why-not-write-tests.md (0.00 MB)
│   │   │   │   │   ├── 06-write-first-unit-test.md (0.00 MB)
│   │   │   │   │   ├── 07-vitest-test-api.md (0.00 MB)
│   │   │   │   │   ├── 08-vitest-debug.md (0.00 MB)
│   │   │   │   │   ├── 09-vitest-vs-jest.md (0.00 MB)
│   │   │   │   │   ├── 10-mini-test-runner.md (0.00 MB)
│   │   │   │   │   ├── 11-to-prepare-data.md (0.00 MB)
│   │   │   │   │   ├── 12-where-put-test-data.md (0.00 MB)
│   │   │   │   │   ├── 13-input-and-output.md (0.00 MB)
│   │   │   │   │   ├── 14-verify-way.md (0.00 MB)
│   │   │   │   │   ├── 15-verify-what.md (0.00 MB)
│   │   │   │   │   ├── 16-test-double.md (0.00 MB)
│   │   │   │   │   ├── 17-test-double-types.md (0.00 MB)
│   │   │   │   │   ├── 18-setup-test-double.md (0.00 MB)
│   │   │   │   │   ├── 19-layer-test.md (0.00 MB)
│   │   │   │   │   ├── 20-parameterized-test.md (0.00 MB)
│   │   │   │   │   ├── 21-test-asynchronous.md (0.00 MB)
│   │   │   │   │   ├── 22-test-api.md (0.00 MB)
│   │   │   │   │   ├── 23-test-third-party-library.md (0.00 MB)
│   │   │   │   │   ├── 24-test-date.md (0.00 MB)
│   │   │   │   │   ├── 25-tear-down.md (0.00 MB)
│   │   │   │   │   ├── 26-test-only-one-focus.md (0.00 MB)
│   │   │   │   │   ├── 27-avoid-condition-test-logic.md (0.00 MB)
│   │   │   │   │   ├── 28-keeping-test-independent.md (0.00 MB)
│   │   │   │   │   ├── 29-easy-and-read.md (0.00 MB)
│   │   │   │   │   ├── 30-testable-design.md (0.00 MB)
│   │   │   │   │   ├── 31-use-the-front-door-first.md (0.00 MB)
│   │   │   │   │   ├── 32-isolation-SUT.md (0.00 MB)
│   │   │   │   │   ├── 33-low-levels-of-assertions.md (0.00 MB)
│   │   │   │   │   ├── 34-transition-assertion.md (0.00 MB)
│   │   │   │   │   ├── 35-magic-string.md (0.00 MB)
│   │   │   │   │   ├── 36-overprotective.md (0.00 MB)
│   │   │   │   │   ├── 37-lengthy-installation.md (0.00 MB)
│   │   │   │   │   ├── 38-schizobulia.md (0.00 MB)
│   │   │   │   │   ├── 39-logical-division.md (0.00 MB)
│   │   │   │   │   ├── 40-immaterial-details.md (0.00 MB)
│   │   │   │   │   ├── 41-repetition.md (0.00 MB)
│   │   │   │   │   ├── 42-the-fragile-test.md (0.00 MB)
│   │   │   │   │   ├── 43-the-lack-of-cohesion.md (0.00 MB)
│   │   │   │   │   ├── 44-comment-out-the-test.md (0.00 MB)
│   │   │   │   │   ├── 45-ambiguity-annotation.md (0.00 MB)
│   │   │   │   │   ├── 46-never-failed-test.md (0.00 MB)
│   │   │   │   │   ├── 47-the-test-of-lying.md (0.00 MB)
│   │   │   │   │   ├── 48-too-loose.md (0.00 MB)
│   │   │   │   │   ├── 49-assertions-roller.md (0.00 MB)
│   │   │   │   │   ├── 50-manual-debugging.md (0.00 MB)
│   │   │   │   │   ├── 51-manual-intervention.md (0.00 MB)
│   │   │   │   │   ├── 52-slow-test.md (0.00 MB)
│   │   │   │   │   ├── 53-mature-and-not-repeat.md (0.00 MB)
│   │   │   │   │   ├── 54-oop-and-SOLID.md (0.00 MB)
│   │   │   │   │   ├── 55-vue3-project.md (0.00 MB)
│   │   │   │   │   ├── 56-react-project.md (0.00 MB)
│   │   │   │   │   ├── 57-vue3-tetris.md (0.00 MB)
│   │   │   │   │   ├── 58-mini-vue-runtime-core-add-test.md (0.00 MB)
│   │   │   │   │   ├── 59-tdd-args.md (0.00 MB)
│   │   │   │   │   └── course-overview.md (0.01 MB)
│   │   │   │   ├── index.md (0.00 MB)
│   │   │   │   └── public/
│   │   │   │   │   ├── favicon.ico (0.01 MB)
│   │   │   │   │   └── logo.png (0.30 MB)
│   │   │   ├── package.json (0.00 MB)
│   │   │   ├── pnpm-lock.yaml (0.05 MB)
│   │   │   ├── README.md (0.00 MB)
│   │   │   └── yarn.lock (0.03 MB)
免责声明:
1、本站资源所有言论和图片纯属用户个人意见,与本站立场无关
2、本站所有资源收集于互联网,由用户分享,该帖子作者与本站不享有任何版权,如有侵权请联系本站删除
3、本站部分内容转载自其它网站,但并不代表本站赞同其观点和对其真实性负责
4、如本帖侵犯到任何版权问题,请立即告知本站,本站将及时予与删除并致以最深的歉意