您的位置:首頁技術文章
文章詳情頁

javascript - 使用vue官方腳手架進行單元測試,如何覆蓋到watch里的變量?

瀏覽:79日期:2023-08-28 09:05:13

問題描述

組件中的watch如下:

player(isPlay) { if (isPlay) { this.playState = ’play’ } else { this.playState = ’pause’ }}

測試文件Home.spec.js中的相關用例如下

it(’播放狀態切換’, () => { const Constructor = Vue.extend(Home) const vm = new Constructor().$mount() vm.playerShow = true Vue.nextTick( () => { expect(vm.playState).to.equal('play') }) vm.playerShow = false Vue.nextTick( () => { expect(vm.playState).to.equal('pause') done() })})

這樣寫了之后查看覆蓋率報告,發現組件中watch部分代碼沒有被覆蓋(都是紅的)請教下如何寫用例才能夠把watch的代碼覆蓋到

問題解答

回答1:

雖然不知道是不是正確的做法,這樣寫了之后,就能覆蓋到watch的代碼了...

it(’播放狀態切換’, () => { const Constructor = Vue.extend(Home) const vm = new Constructor().$mount() vm._watchers[0].cb(true) Vue.nextTick( () => { expect(vm.playState).to.equal('play') }) vm._watchers[0].cb(false) Vue.nextTick( () => { expect(vm.playState).to.equal('pause') done() })})

標簽: JavaScript
国产综合久久一区二区三区