To simulate the NestJS internal Logger using Jest, you can use the jest.spyOn()
method to create a spy on the LoggerService
class.
Here is an example of how you can test a method that uses the NestJS internal Logger:
import { Test, TestingModule } from '@nestjs/testing';
import { MyService } from './my.service';
import { LoggerService } from '@nestjs/common';
describe('MyService', () => {
let service: MyService;
let loggerSpy: jest.SpyInstance;
beforeEach(async () => {
const module: TestingModule = await Test.createTestingModule({
providers: [
MyService,
{
provide: LoggerService,
useValue: {
debug: jest.fn(),
error: jest.fn(),
log: jest.fn(),
verbose: jest.fn(),
warn: jest.fn(),
},
},
],
}).compile();
service = module.get(MyService);
loggerSpy = jest.spyOn(service.logger, 'log');
});
afterEach(() => {
loggerSpy.mockClear();
});
it('should call the log method of the logger', () => {
service.myMethod();
expect(loggerSpy).toHaveBeenCalledWith('My message');
});
});
In this example, we create a spy on the log
method of the LoggerService, and use it to verify that the method myMethod
calls the logger with the expected message. We also clear the spy after each test to make sure it doesn't interfere with the next test.
Please start posting anonymously - your entry will be published after you log in or create a new account. This space is reserved only for answers. If you would like to engage in a discussion, please instead post a comment under the question or an answer that you would like to discuss
Asked: 2021-07-25 11:00:00 +0000
Seen: 10 times
Last updated: Jun 07 '21
What does the error message "1 timer(s) still in the queue" indicate in an Angular/Karma unit test?
Is it possible to undo ActiveRecord transactions in Rails testing without causing an error to occur?
Is it possible for Statsmodel's pairwise Tukey's test to produce a p-value that is negative?
What is the process for verifying the handling of command line arguments in arguments?
How can unit testing be done with Firebase and Flutter?
What is the procedure for testing scheduling in Laravel?
What is the method to simulate navigator.geolocation in a React Jest Test?
How can I turn off the automatic running of Jest test runner within the Visual Studio Code editor?