如何测试Vue方法

时间:2019-06-28 14:12:13

标签: javascript unit-testing vue.js mocha

我有一个Vue JS组件,其中包含一些输入/属性,其中之一是一个函数。我这样使用它,而不是在操作发生时发出事件,因此,单击按钮时,我是通过onClickAction道具将通知发送给父级。一切正常,除了无法进行单元测试的事实。

  <button @click="clickAction()"></button>

================================================ ======

  props: {
    onClickAction: { type: Function, required: true }
  },

  methods: {
    clickAction() {
      this.onClickAction();
    }
  }

================================================ ======

测试文件:

  let wrapper;
  const spy = sinon.spy()

  beforeEach(() => {
    wrapper = shallowMount(WrapperComp, {
      propsData: {
        onClickAction: spy
      }
    });
  });

  it('Should call onClickAction when the button is clicked', () => {
    sinon.spy(wrapper, 'clickAction');
    wrapper.trigger('click');
    expect(wrapper.clickAction).toHaveBeenCalled();
  });

错误:

  

点击按钮时应调用onClickAction:        TypeError:尝试将未定义的属性clickAction包装为函数

在这种情况下,请告知测试方法的正确方法是什么。谢谢!

0 个答案:

没有答案