0

如果我有一个 Vue 组件,例如:

import lodash from 'lodash';

export default {

  //...data, props etc

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

};

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

4

1 回答 1

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();
于 2018-08-17T12:04:40.863 回答