Vue / Jest警告:测试异步行为时nextTick中的错误

时间:2019-10-15 17:13:32

标签: vue.js jestjs vuex

我不是开玩笑的新手,正在尝试测试一些动作,其中之一称为异步动作。

我的测试通过了,但收到警告

我不知道为什么。

在我的组件中,我有:

methods: {
...mapActions('userInfo', ['toggleCart', 'resetCart',],),
toggleCart () {
  if (this.user.isLoggedIn) {
    const self = this;
    this.toggleCart(this.id).then(() => {
      self.resetCart(self.id);
    });
  }
},

(这些操作映射到我在userInfo存储中的操作)。

在我的商店中,我的动作是:

const actions = {
toggleCart ({ state, }, titleId) {
 if (state.item.isInMyCart) {
   api.del(`${cart-add}/${itemId}`, `${itemId}`);
 } else {
   api.put(`${cart-add}/${itemId}`, `${itemId}`);
 }
},
 resetState ({ commit, }, itemId) {
  api.get(`${cart}/${itemId}`).then((response) => {
  commit('setUserCart', { ...defaultValues, ...response, });
});

}, };

我对此的测试是:

test('resets userCart state asynchronously when toggleCartItem is clicked', () => {
const wrapper = shallowMount(userCart, { store, localVue, });
wrapper.find('a.button.toggle').trigger('click');
wrapper.vm.$nextTick(() => {
  expect(actions.resetCart).toHaveBeenCalled()
    .done();
});

});

再一次,测试通过了,从功能上讲,一切正常,但是我不明白为什么收到警告。

0 个答案:

没有答案