我正在尝试学习Sinon.JS。我已经使用npm安装了Sinon.JS。我在文档中找不到任何命令行命令。在sinonjs.org网站上,有这样的“文档”:
function once(fn) {
var returnValue, called = false;
return function () {
if (!called) {
called = true;
returnValue = fn.apply(this, arguments);
}
return returnValue;
};
}
it('calls the original function', function () {
var callback = sinon.fake();
var proxy = once(callback);
proxy();
assert(callback.called);
});
如何使用Sinon.JS 运行该测试?
答案 0 :(得分:1)
Sinon是一个提供“用于JavaScript的独立测试间谍程序,存根和模拟程序”的库。
它“可与任何单元测试框架一起使用。”
关键思想是它是一个在测试框架内有效的库。
它将与Jest,Jasmine,Mocha等任何主要的JavaScript测试框架一起使用。
例如,要使用Sinon
和Jest
从问题中执行测试,请执行npm install --save-dev sinon
添加Sinon
,然后执行npm install --save-dev jest
添加{{ 1}},然后使用以下代码添加测试文件(类似于Jest
):
src/code.test.js
请注意,在这种情况下,最后一行的import * as sinon from 'sinon';
function once(fn) {
var returnValue, called = false;
return function () {
if (!called) {
called = true;
returnValue = fn.apply(this, arguments);
}
return returnValue;
};
}
it('calls the original function', function () {
var callback = sinon.fake();
var proxy = once(callback);
proxy();
expect(callback.called).toBe(true); // SUCCESS
});
是使用assert
的{{3}}断言来实现的。
然后运行Jest
,它将在运行Jest
时使用 Sinon
。