Hom*_*ith 3 javascript mocha.js sinon
我有一个非常简单的 JS 库(称为 trysinon.js),如下所示:
export function foo() {
bar();
}
export function bar() {
return 2;
}
Run Code Online (Sandbox Code Playgroud)
我有以下测试
import expect from 'expect';
import sinon from 'sinon';
import * as trysinon from 'trysinon';
describe('trying sinon', function() {
beforeEach(function() {
sinon.stub(trysinon, 'bar');
});
afterEach(function() {
trysinon.bar.restore();
});
it('calls bar', function() {
trysinon.foo();
expect(trysinon.bar.called).toBe(true);
});
});
Run Code Online (Sandbox Code Playgroud)
并且测试失败了。如何确保测试通过?
因为在 中foo(),您调用了bar()trysinon.js 的内部函数。这与导出的存根bar()不同。bar()最好的方法是更改trysinon为类,或者称为导出bar(),foo()如下所示。
function bar() { return 2; }
module.exports.bar = bar;
function foo() {
module.exports.bar();
}
module.exports.foo = foo;
Run Code Online (Sandbox Code Playgroud)
然后你可以bar()存根sinon.stub(trysinon, 'bar').returns(2)
希望这可以帮到你。
| 归档时间: |
|
| 查看次数: |
1480 次 |
| 最近记录: |