README
Stub
Simplest sinon.stub() alternative. With support of showing diff on calleddWith
.
Install
npm i @cloudcmd/stub
API
stub([impl])
impl
- stub implementation
const stub = require('@cloudcmd/stub');
const fn = stub();
// fn contains stubbed function
const asyncFn = stub(async () => {
throw Error('hi');
});
// asyncFn contains stub async function
stub().returns([value])
const fn = stub().returns('hello');
fn();
// returns
'hello';
stub().throws([error])
const fn = stub().throws(Error('hello'));
fn();
// throws
Error('hello');
stub().rejects([error])
const fn = stub().rejects(Error('hello'));
await fn();
// rejects
Error('hello');
stub().resolves([values])
const fn = stub().resolves('hello');
await fn();
// resolves
'hello';
stub().calledWith([args])
const fn = stub();
fn('hello', 'world');
fn.calledWith('hello', 'world');
// returns true
stub().calledWithNew()
const fn = stub();
new fn();
fn.calledWithNew();
// returns
true;
stub().calledBefore(fn)
const fn1 = stub();
const fn2 = stub();
fn1();
fn2();
fn1.calledBefore(fn2);
// returns
true;
stub().calledAfter(fn)
const fn1 = stub();
const fn2 = stub();
fn1();
fn2();
fn2.calledAfter(fn1);
// returns
true;
stub().called
const fn = stub();
fn.called;
// returns
false;
fn();
fn.called;
// returns
true;
stub().callCount
const fn = stub();
fn.callCount;
// returns
0;
fn();
fn.callCount;
// returns
1;
stub().args
const fn = stub();
fn.args;
// returns
[];
fn(1);
fn.args;
// returns
[[1]];
stub().callId
Each stub
has it callId
, which can be used to determine order of stub
calls:
const fn1 = stub();
const fn2 = stub();
fn1();
fn2();
fn1.callId;
// returns
1;
fn2.callId;
// returns
2;
isStub(fn)
Check if provided function is stub.
const {stub, isStub} = require('@cloudcmd/stub');
const fn = stub();
isStub(fn);
// returns
true;
isStub(() => {});
// returns
false;
Related
- sinon-called-with-diff - sinon
calledWith
diff - try-to-tape -
try catch
for async tape tests - try-catch - functional try-catch wrapper.
- try-to-catch - functional try-catch wrapper for promises.
License
MIT