如何在玩笑代码覆盖率中覆盖 beforeDestroy 钩子

How to cover beforeDestroy hook in jest code coverage

我在 Employee.vue 文件中有以下 beforeDestroy 挂钩

beforeDestroy() {
    this.checkIncompleteValues()
}

并且在测试文件单元测试中写成

test('beforeDestroy method', () => {
    const beforeDestroySpy = jest.spyOn(Employee, 'beforeDestroy')
    wrapper.vm.callOtherMethod = jest.fn()
    expect(beforeDestroySpy).toHaveBeenCalled()
    expect(mockedMethod).toHaveBeenCalled()
})

以上测试已通过,但在代码覆盖率报告中,如您在图片中看到的那样,beforeDestroy 行未被覆盖 coverage report

有什么方法可以覆盖 beforeDestroy 钩子中存在的行

谢谢

销毁组件的实例,例如 wrapper.destroy()

import { mount } from '@vue/test-utils'
import sinon from 'sinon'

const spy = sinon.stub()
mount({
  render: null,
  destroyed() {
    spy()
  }
}).destroy()
expect(spy.calledOnce).toBe(true)

注意:对于功能组件,destroy 仅从文档中删除呈现的 DOM 个元素。

文档:https://vue-test-utils.vuejs.org/api/wrapper/#destroy