模拟vue组件依赖性

我正在尝试运行单元测试,在其中进行axios调用,这将返回错误。我已经成功地模拟了调用,但是在出错时,我调用了外部库的依赖项(已烤)以显示错误消息。

当我的单元测试命中时,它是“未定义的”:

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

有人知道正确的语法是什么吗?

fengyun0919 回答:模拟vue组件依赖性

尝试添加:

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

当然,您可以为模拟添加更多功能。

本文链接:https://www.f2er.com/2884937.html

大家都在问