vue 单元测试入门
组件方法
// 同步方法
m1:function(a,b){
return a+b
},
// 异步方法m2:function(a,b,ab){ setTimeout(function(){ cb(a+b) },2000) },单元测试
// 同步方法
it(‘test function m1‘, () => {
const m1 = vm.m1;
expect(m1(2,3)).toEqual(5)
});
// 异步方法
it(‘aysnc m2 should return 3‘, () => {
const m2 = vm.m2;
m2(1,2,data=>{
expect(data).toEqual(3)
})
});使用promise 需要安装
npm i es6-promise --save-devimport promise from ‘es6-promise‘;// 兼容 Promisepromise.polyfill();
断言的写法
export(m1(2,3)).to.equal(5); m1(1,2).should.eq(3); assert.equal(m1(1,2),3)
mock 的使用
getmes:funciton(cb){ // 假设这个接口会返回4 axios.get(‘xxratatatatta‘) var res = cb(); this.dataa = res;}describe(‘HelloWorld.vue‘, () => {
const Constructor = Vue.extend(HelloWorld)
const vm = new Constructor().$mount()
it(‘接口被请求‘,()=>{
// spy stud let axiosstud = sinon.stub(axios,‘get‘); let callback = sinon.spy(()=>{ return 5 }) const getmes = vm.getmes; expect(getmes(callback)).to.equal(4)
})
})