Javascript 模拟vue组件依赖项

Javascript 模拟vue组件依赖项,javascript,unit-testing,vue.js,jestjs,vue-test-utils,Javascript,Unit Testing,Vue.js,Jestjs,Vue Test Utils,我正在尝试运行一个单元测试,在该测试中,我进行了一个axios调用,这将返回一个错误。我成功地模拟了调用,但出现错误时,我调用了对外部库(vue toasted)的依赖项以显示错误消息 当我的单元测试点击toasted时,它是“未定义的”: TypeError: Cannot read property 'error' of undefined this.$toasted.error('Search ' + this.searchString + ' returned no resul

我正在尝试运行一个单元测试,在该测试中,我进行了一个axios调用,这将返回一个错误。我成功地模拟了调用,但出现错误时,我调用了对外部库(vue toasted)的依赖项以显示错误消息

当我的单元测试点击toasted时,它是“未定义的”:

TypeError: Cannot read property 'error' of undefined

    this.$toasted.error('Search ' + this.searchString + ' returned no results', etc.....
我已经尝试在我的测试包装中注册这种依赖性

import Toasted from 'vue-toasted';

jest.mock(Toasted);
这些似乎没有为包装器提供正确的依赖关系。这是我的测试:

it('searches users via axios and returns 404', async () => {
    mock.onPost(process.env.VUE_APP_IDENTITY_API_URL + 'user/search').reply(404);

    await wrapper.vm.searchUsers(1);
    expect(mock.history.post.length).toBe(1);
    expect(wrapper.vm.users).toBeNull();
    expect(wrapper.vm.pagingInfo).toBeNull();
})
这就是我的组件包装器的模拟方式:

const wrapper =  shallowMount(Users, {
  stubs: {
    RouterLink: RouterLinkStub
  }
});
有人知道注册此语法的正确语法吗?

尝试添加:

const wrapper = shallowMount(Users, {
  mocks: {
     $toasted: {
         error: () => {},
     }
  }
});

当然,你可以在模拟中添加更多功能。

我现在得到
TypeError:_this.$toasted.error不是一个函数
有什么想法吗?尝试使用toasted作为插件。按此方式安装Vue。在此测试中使用(烘烤)Vue未定义,测试集中在组件上,因此它会出错,因为它不知道“Vue”。我还尝试了组件本身(Users.use(Toasted)),但这也不起作用。这是我的荣幸)