А через useMocker и createMock не сделать?
const mockUsersService = jest.createMockFromModule<UsersService>( '../users/users.service', ); === jest.spyOn(mockUsersService, 'softDeleteUser').mockResolvedValue({ ...userMock, deletedAt: new Date(), }); Property softDeleteUser does not exist in the provided object Такой метод реально есть async softDeleteUser(user: User): Promise<User> { return this.usersRepository.updateUser(user.id, { deletedAt: new Date() }); } Почему то в созданном через createMock моке не все методы есть, которые в реальном сервисе. Как так может быть?
Я не вижу здесь createMock
так вы модуль для теста создайте, а потом мокните оттуда сервис
const mockUsersService = jest.createMockFromModule<UsersService>( '../users/users.service', ); beforeEach(async () => { const module: TestingModule = await Test.createTestingModule({ imports: [], providers: [ { provide: UsersService, useValue: mockUsersService, }, ], controllers: [AccountController], }).compile(); } mockUsersService.editUserInfo = jest .fn() .mockResolvedValue(editedUserResponseMock); Таким образом уже работает
При создании модуля я указываю providers: [ { provide: UsersService, useValue: mockUsersService, }, ], То есть я его выше должен создать то создания тестового модуля А можете показать как у Вас?
странно вы придумали
Обсуждают сегодня