1.2.0 • Published 8 months ago
interface-mock v1.2.0
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'));
});
});