Skip to content

Commit 79d1712

Browse files
committed
fix: update the connect concept
1 parent 4ca9acb commit 79d1712

File tree

1 file changed

+14
-14
lines changed

1 file changed

+14
-14
lines changed

前端/2019-05-08-vue-application-unit-test-strategy-and-practice-05-testing-trophy.md

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -55,14 +55,14 @@ published: True
5555

5656
一个常见的 Vue 应用会包括这么几个层面:组件、数据管理、Vuex、副作用等等,对于不同的项目应该有一定的适应性。Vue + Vuex 架构中的不同元素有不同的特点,因此即便是单元测试,我们也会有针对性的测试策略:
5757

58-
| 架构层级 | 测试内容 | 测试策略 | 解释 |
59-
| :----------: | --------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------- |
60-
| action 层 | 1. 是否获取了正确的参数<br />2. 是否正确地调用了 API<br />3. 是否使用了正确的返回值存取回 Vuex 中<br />4. 业务分支逻辑<br />5. 异常逻辑 | 这五个业务点建议 100% 覆盖 | 这个层级主要包含前述 5 大方面的业务逻辑,进行测试很有重构价值 |
61-
| mutation 层 | 是否正确完成计算 | 有逻辑的 mutation 要求 100%覆盖率 | 这个层级输入输出明确,又包含业务计算,非常适合单元测试 |
62-
| getter 层 | 是否正确完成计算 | 有逻辑的 getter 要求 100%覆盖率 | 这个层级输入输出明确,又包含业务计算,非常适合单元测试 |
63-
| component 层 | 是否渲染了正确的组件 | 1. 组件的分支渲染逻辑要求 100%覆盖<br/>2. 交互事件的调用参数一般要求 100%覆盖<br/>3. 被 connect 过的组件不测<br/> | 这个层级最为复杂,还是以「代价最低,收益最高」为指导原则进行 |
64-
| UI 层 | 组件是否渲染了正确的样式 | 1. 纯 UI 不测<br/>2. CSS 不测 | 这个层级以我目前理解来说测试较难稳定,成本又较高 |
65-
| utils 层 | 各种辅助工具函数 | 没有副作用的必须 100% 覆盖 | |
58+
| 架构层级 | 测试内容 | 测试策略 | 解释 |
59+
| :----------: | --------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------- |
60+
| action 层 | 1. 是否获取了正确的参数<br />2. 是否正确地调用了 API<br />3. 是否使用了正确的返回值存取回 Vuex 中<br />4. 业务分支逻辑<br />5. 异常逻辑 | 这五个业务点建议 100% 覆盖 | 这个层级主要包含前述 5 大方面的业务逻辑,进行测试很有重构价值 |
61+
| mutation 层 | 是否正确完成计算 | 有逻辑的 mutation 要求 100%覆盖率 | 这个层级输入输出明确,又包含业务计算,非常适合单元测试 |
62+
| getter 层 | 是否正确完成计算 | 有逻辑的 getter 要求 100%覆盖率 | 这个层级输入输出明确,又包含业务计算,非常适合单元测试 |
63+
| component 层 | 是否渲染了正确的组件 | 1. 组件的分支渲染逻辑要求 100%覆盖<br/>2. 交互事件的调用参数一般要求 100%覆盖<br/>3. 连接 vuex store 的容器组件不测<br/> | 这个层级最为复杂,还是以「代价最低,收益最高」为指导原则进行 |
64+
| UI 层 | 组件是否渲染了正确的样式 | 1. 纯 UI 不测<br/>2. CSS 不测 | 这个层级以我目前理解来说测试较难稳定,成本又较高 |
65+
| utils 层 | 各种辅助工具函数 | 没有副作用的必须 100% 覆盖 | |
6666

6767
### Component 的测试标准
6868

@@ -82,12 +82,12 @@ published: True
8282

8383
总结一下,其实每种组件都要测**渲染分支****事件调用**,跟组件类型根本没必然的关联…
8484

85-
| 组件类型 / 测试内容 | 分支渲染逻辑 | 事件调用 | `@connect` | 纯 UI |
86-
| :-----------------: | :----------: | :------: | :--------: | :---: |
87-
| 展示型组件 ||| | |
88-
| 容器型组件 ||| | |
89-
| 通用 UI 组件 ||| | |
90-
| 功能型组件 ||| | |
85+
| 组件类型 / 测试内容 | 分支渲染逻辑 | 事件调用 | 纯 UI |
86+
| :-----------------: | :----------: | :------: | :---: |
87+
| 展示型组件 ||||
88+
| 容器型组件 ||||
89+
| 通用 UI 组件 ||||
90+
| 功能型组件 ||||
9191

9292
## 单元测试的 F.I.R.S.T 原则
9393

0 commit comments

Comments
 (0)