recherche

Maison  >  Questions et réponses  >  le corps du texte

javascript - Comment couvrir les variables dans Watch en utilisant l'échafaudage officiel de Vue pour les tests unitaires?

La montre dans le composant est la suivante :

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

Les exemples d'utilisation pertinents dans le fichier de test Home.spec.js sont les suivants

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

Après avoir écrit ceci, vérifiez le rapport de couverture et constatez que la partie montre du code dans le composant n'est pas couverte (toute rouge)
Veuillez me dire comment écrire un cas d'utilisation pour couvrir le code de la montre

typechotypecho2769 Il y a quelques jours1139

répondre à tous(1)je répondrai

  • 大家讲道理

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

    Bien que je ne sache pas si c'est la bonne approche, après l'avoir écrit de cette façon, le code de la montre sera couvert...

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

    répondre
    0
  • Annulerrépondre