Я подозреваю, что ваша Client
библиотека выглядит примерно так:
const Client = function() {};
Client.prototype.foo = () => {};
Client.prototype.bar = () => {};
, тогда вы можете легко протестировать, используя sinon заглушки & шпионы , иЯ использую chai's ожидают , так как он может приятно сравнить массивы / объекты:
const sinon = require('sinon');
const {expect} = require('chai');
const client = new Client();
// define simple function that just returns args
const returnArgs = (...args) => args;
// stub foo & bar to return args
sinon.stub(client, 'foo').callsFake(returnArgs);
sinon.stub(client, 'bar').callsFake(returnArgs);
it('should call foo & bar', () => {
const args = [1,2,3];
const actual = client.a(...args);
expect(actual).eqls([args, args]);
expect(client.foo.calledOnce).to.be.true;
expect(client.foo.getCall(0).args).eqls(args);
expect(client.bar.calledOnce).to.be.true;
expect(client.bar.getCall(0).args).eqls(args);
})