使用Mocha Chai和Sinon测试去抖的Vue方法

时间:2018-08-13 18:57:32

标签: unit-testing vue.js mocha sinon debounce

如果我有Vue组件,例如:

import lodash from 'lodash';

export default {

  //...data, props etc

  methods: {
    someFunction: lodash.debounce(function debouncedsomeFunction() {
      return 'test';
    }, 200)
  }

};

我将如何使用Mocha + Chai + Sinon测试someFunction

1 个答案:

答案 0 :(得分:0)

有几种可能的方法,但听起来像是要模拟lodash。为了便于演示,我将线性列出这些步骤,但是您可能希望将它们适当地分布在测试块和挂钩中。我还假设对debounce的唯一调用是所讨论的方法。如果没有,请相应调整以下内容。

import * as Lodash from "lodash";
const debounce = sinon.stub(Lodash, "debounce").returns(() => {});
// create your component
expect(debounce.calledOnce).to.equal(true);
expect(debounce.firstCall.args[0]).to.be.a("function");
expect(debounce.firstCall.args[0]()).to.equal("test");
Lodash.debounce.restore();