1.2.0 • Published 8 months ago

interface-mock v1.2.0

Weekly downloads
-
License
MIT
Repository
github
Last release
8 months ago

npm version tests

Interface Mock

C#-like API for creating mock in TypeScript for Node.js environment

Installation

npm install --save-dev interface-mock

or

yarn add --dev interface-mock

Usage

Create mock by passing interface to it and providing default implementation, then call .verify() method to check whether the method was called. Additionally you can specify how many times it should have been called

import { createInterfaceMock } from 'interface-mock';

interface IBus {
  send: (message: string) => Promise<void>;
}

describe('SomeTest', () => {
  it('works', () => {
    const busMock = createInterfaceMock<IBus>({ send: async () => {} });
    const someService = new SomeService(busMock);

    someService.execute();

    busMock.verify(m => m.send('Hello'));
  });

  it('works 2', () => {
    const busMock = createInterfaceMock<IBus>({ send: async () => {} });
    const someService = new SomeService(busMock);

    someService.execute();

    busMock.verify(m => m.send('Hello'), { times: 2 });
  });
});

Additionally you can manually specify the resulting type of createInterfaceMock function:

import { createInterfaceMock, InterfaceMock } from 'interface-mock';

interface IBus {
  send: (message: string) => Promise<void>;
}

describe('SomeTest', () => {
  let busMock: InterfaceMock<IBus>;

  beforeEach(() => {
    busMock = createInterfaceMock<IBus>({ send: async () => {} });
  });

  it('works', () => {
    const someService = new SomeService(busMock);

    someService.execute();

    busMock.verify(m => m.send('Hello'));
  });
});
1.2.0

8 months ago

1.1.0

8 months ago

1.0.0

8 months ago