Jasmine Ts Auto Mock
This is a library that extend ts-auto-mock to be used with jasmine
The intention of the library is to automatically assign spies to mocks giving you type safety
Requirements
typescript@^3.2.2
Installation
-
A Transformer needs to be provided at compile time. There are different ways to do it. Please read the following guide to find your configuration
-
provide jasmine-ts-auto-mock before your test Please read the following guide to find your configuration
Examples
If you are using angular with typescript 3.7 you need to follow the solution in this issue:
https://github.com/angular/angular-cli/issues/16071
Add this in the polyfill until angular support typescript 3.7
// @ts-ignore
window.__importDefault = function(mod) {
return mod && mod.__esModule ? mod : { default: mod };
};
Usage
- create an interface
interface Interface {
methodToMock: () => string
}
- create a mock
const mock: Interface = createMock<Interface>();
- get the method mock
You can get the method spy in 2 different ways
Through method
import { On, method } from "ts-auto-mock/extension";
const mockMethod: jasmine.Spy = On(mock).get(method(mock => mock.methodToMock));
Through string
import { On, method } from "ts-auto-mock/extension";
const mockMethod: jasmine.Spy = On(mock).get(method('methodToMock'));
- trigger the method
someMethodThatWillTriggerInterfacemethodToMock();
expect(mockMethod).toHaveBeenCalled();
Authors
License
This project is licensed under the MIT License