isVueInstance 已弃用,将在未来的版本中删除

isVueInstance is deprecated and will be removed in future releases

我是 JEST 的新手,收到了上述警告。我想知道哪个是替代方案,因为它已被弃用。

这是我正在做的测试:

it('is instantiated', () => {
expect(wrapper.isVueInstance()).toBeTruthy();

});

我检查过 https://vue-test-utils.vuejs.org/api/wrapper/#isvisible 他们说:

Assert Wrapper is Vue instance.

所以最后的事情是:

it('is instantiated', () => {
    expect(wrapper).toBeTruthy();
  });

下面是严格检查 VueInstance 的方法

https://github.com/vuejs/vue-test-utils/blob/2d6b49780c7e1d663b877ddf5d6492ed7b510379/packages/test-utils/src/wrapper.js#L400

it('is instantiated', () => {
    expect(wrapper.vm).toBeTruthy();
});

正确答案应该如下:

it('is instantiated', () => {
    expect(wrapper.exists()).toBeTruthy();
});

来自 vue-test-utils 存储库中的 test/specs/wrapper/find.spec.js, 您可以看到,当包装器不存在时,它们会使用 exists().

断言 Wrapper 对象
  it('returns empty Wrapper with error if no nodes are found', () => {
    const wrapper = mountingMethod(Component)
    const selector = 'pre'
    const error = wrapper.find(selector)
    expect(error.exists()).toEqual(false)
    expect(error.selector).toEqual(selector)
  })