suchen

Heim  >  Fragen und Antworten  >  Hauptteil

javascript - Wie deckt man Variablen in Watch ab, wenn man das offizielle Vue-Scaffolding für Unit-Tests verwendet?

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.

typechotypecho2697 Tage vor1073

Antworte allen(1)Ich werde antworten

  • 大家讲道理

    大家讲道理2017-06-27 09:21:20

    虽然不知道是不是正确的做法,这样写了之后,就能覆盖到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()
      })
    })

    Antwort
    0
  • StornierenAntwort