5.2 简单轮子:VueTab 组件单元测试
大纲链接 §
[toc]
保证组件的可测试性
VueTab.vue系列组件的单元测试
VueTab的单元测试tab.spec.tsVueTabNav的单元测试tab-nav.spec.tsVueTabItem的单元测试tab-item.spec.tsVueTabContent的单元测试tab-content.spec.tsVueTabPane的单元测试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"] - 这样做的目的是编写可测试的代码