5.2 简单轮子:VueTab 组件单元测试
大纲链接 §
[toc]
保证组件的可测试性
VueTab.vue
系列组件的单元测试
VueTab
的单元测试tab.spec.ts
VueTabNav
的单元测试tab-nav.spec.ts
VueTabItem
的单元测试tab-item.spec.ts
VueTabContent
的单元测试tab-content.spec.ts
VueTabPane
的单元测试tab-pane.spec.ts
VueTab
的单元测试tab.spec.ts
this.$children
只能获取到子组件,不能获取到子元素- 单元测试难点 构造子元素或子组件
- 用户事件为异步执行,需要使用异步测试 带上参数
done
- 二分log法:
console.log('1')
与console.log('2')
查看执行顺序,找到未执行的log- 打出未执行行代码的变量查看
|
|
- 使用
vm.$el.querySelector('.tab-item:nth-child(1)');
按照顺序选出的节点不可靠,需要更加可测试的组件代码:- 在
VueTabItem.vue
组件标签中绑定自定义属性:data-name="tagName"
- 可以直接根据用户传入的
tagName
属性查找测试中的节点
- 在
VueTabItem.vue
|
|
tab.spec.ts
|
|
const selectedTab = vm.$el.querySelector(`.tab-item[data-name="tab2"]`)
- 更精确的选择到
.tab-item[data-name="tab2"]
- 这样做的目的是编写可测试的代码