Vue+Jest 单元测试

新到一个公司,要求单元测试覆盖率达50%以上,我们都是后补的单测,其实单测的意义是根据需求提前写好,驱动开发,代替手动测试。然鹅这只是理想。。。

这里总结一下各种遇到的单测场景

  1. 挂载组件,调用elementui, mock函数
```javascript

describe('页面验证', () => {
   
	const wrapper = getVue({
   
	    component: onlineFixedPrice,
	    callback(Vue) {
   
	      Vue.use(elementUi)
	    },
	    mocks: {
   
		  $route: {
   
	        query: {
   
	          id: '13945416091902200'
	        }
	      },
	      $store: {
   
	        state: {
   
	          name: 'meimei'
	        }
	      },
	      $refs: {
   
	        form: {
   
	          height: 300
	        }
	      },
	      $message: {
   
	        error() {
   
	          return jest.fn()
	        }
	      }
		}
	})
}
  1. 测试接口:
    jest.fn(),jest.mock()和jest.spyOn(), 都能创建mock函数,在实际项目的单元测试中:
    1)jest.fn()常被用来进行某些有回调函数的测试;
    2)jest.mock()可以mock整个模块中的方法,当某个模块已经被单元测试100%覆盖时,使用jest.mock()去mock该模块,节约测试时间和测试的冗余度是十分必要;
    3)当需要测试某些必须被完整执行的方法时,常常需要使用jest.spyOn()。
    这些都需要根据实际的业务代码灵活选择
```javascript

<!-- hello.js -->
<script>
methods: {
   
	sayHello() {
   
		this.$refs.form.validate(valid => {
   
			this.axios('getName', {
   id: '123'}, ()=> {
   
				this.name = res.data.name
			})
		})
	}
}
</script>


<!
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值