/simple-stub

To simply make stubs out of simple javascript objects.

Primary LanguageJavaScriptMIT LicenseMIT

simple-stub

To simply make stubs out of simple javascript objects. Use this stubs for testing in your favorite testing setup.

How to use

To create a stub object, create a object and call .createStub() with it as argument.

    const obj = {
      f: a => a + 5,
    };

    const stubObj = simpleStub.createStub(obj);

If you now call stubObj.f(1) it will behave like obj.f(1) and return 6. The stub object will also save an array with "Call-Objects" for each function call which looks like this:

[{
  "args": [1],
  "err": undefined,
  "result": 6
}]

These "Call-Objects" can be found under the path stubObj.calls.{function}.

After you made your calls you can use this data to make your assertions.

  it('calls the function 3 times with 1 2 and 3', () => {
    const obj = {
      f: a => a + 5,
    };

    const stubObj = simpleStub.createStub(obj);

    stubObj.f(1);
    stubObj.f(2);
    stubObj.f(3);

    expect(stubObj.calls.f.length).to.equal(3);
    expect(stubObj.calls.f[0].args[0]).to.equal(1);
    expect(stubObj.calls.f[0].result).to.equal(6);
    expect(stubObj.calls.f[1].args[0]).to.equal(2);
    expect(stubObj.calls.f[1].result).to.equal(7);
    expect(stubObj.calls.f[2].args[0]).to.equal(3);
    expect(stubObj.calls.f[2].result).to.equal(8);
  });

That's it.