Developapa


Angular provide a global Module for testing

October 08, 2022

Sometimes you just need some configuration or module that is loaded for all your Angular test. In my case this was an injection token I wanted to set for all tests (because they were using a library). But this works just as well for any module, service, etc. you might want to add to all tests - e.g. global mock for backend services, http clients, etc.

Here are the snippets for Jest and Karma how to add such a module / configuration.

Jest

In your jest.setup.ts/js

import 'jest-preset-angular';
defineGlobalsInjections({
    imports: [
      YourTestingModule,
    ],
    providers: [
        {provide: YOUR_TOKEN, useValue: 'yourValue'},
    ],
});

Karma

In your test.ts/js where you call your setup with initTestEnvironment


@NgModule({
    imports: [
      YourTestingModule,
    ],
    providers: [
        {provide: YOUR_TOKEN, useValue: 'yourValue'},
    ],
})
class GlobalTestingSetupModule {}

TestBed.resetTestEnvironment();
TestBed.initTestEnvironment(
    [
        BrowserDynamicTestingModule,
        GlobalTestingSetupModule,
    ],
    platformBrowserDynamicTesting(),
    {},
);

Personal Blog written by Nicolas Gehlert, software developer from Freiburg im Breisgau. Developer & Papa. Github | Twitter

Add a comment

Comments

There are no comments available for this blog post yet

© 2024, Nicolas Gehlert