javascript - Wie deckt man Variablen in Watch ab, wenn man das offizielle Vue-Scaffolding für Unit-Tests verwendet?
typecho
typecho 2017-06-27 09:19:20
0
1
1114

Die Uhr in der Komponente ist wie folgt:

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

Die relevanten Anwendungsbeispiele in der Testdatei Home.spec.js lauten wie folgt

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()
  })
})

Nachdem Sie dies geschrieben haben, überprüfen Sie den Abdeckungsbericht und stellen Sie fest, dass der Überwachungsteil des Codes in der Komponente nicht abgedeckt ist (alles rot).
Bitte sagen Sie mir, wie ich einen Anwendungsfall schreiben soll, um den Überwachungscode abzudecken.

typecho
typecho

Following the voice in heart.

Antworte allen(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()
  })
})
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage