如果我有Vue组件,例如:
import lodash from 'lodash';
export default {
//...data, props etc
methods: {
someFunction: lodash.debounce(function debouncedsomeFunction() {
return 'test';
}, 200)
}
};
我将如何使用Mocha + Chai + Sinon测试someFunction
?
答案 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();