Макет работает в тестовом файле, но не в тестируемом файлеJavascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 Макет работает в тестовом файле, но не в тестируемом файле

Сообщение Anonymous »

Я пытаюсь перенести проект из Jest в Vitest, и у меня возникли проблемы с макетами. Я не могу понять, почему при издевательстве над сторонним модулем и использовании фиктивных реализаций/фиктивных возвращаемых значений они работают внутри тестового файла, но не внутри тестируемого файла (куда я хочу, чтобы издеваемые значения действительно возвращались). Это работает без проблем с Jest, но не с Vitest. Вот часть кода, который у меня есть на данный момент:

Код: Выделить всё

import internalService from '@internal/js-service'
import idUtil from '@internal/js-service/lib/idUtil'

vi.mock('@internal/js-service', () => {
return {
default: {
init: vi.fn().mockReturnValue('1),
identify: vi.fn(),
},
}
})

vi.mock('@internal/js-service/lib/idUtil', () => ({
default: vi.fn().mockReturnValue('123'),
}))

test('should initialize the internal service with the expected params',  () => {
console.log('test', internalService.init(), idUtil())

initializeInternalService({email: '[email protected]'})

expect(internalService.init).toHaveBeenCalledTimes(1)
expect(internalService.init).toHaveBeenCalledWith(
{
email: '[email protected]',
unique_id: '1',
},
)
})

и тестируемый файл:

Код: Выделить всё

import internalService from '@internal/js-service'
import idUtil from '@internal/js-service/lib/idUtil'

export const initializeInternalService = (user: User) => {
internalService.init(
{
unique_id: idUtil(),
email: user.email,
},
)
}

Когда console.log запускается внутри теста, код возвращает искажённые значения ( и '123'), как и ожидалось, но при запуске кода в тестируемом файле кажется, что запускаются исходные реализации, а не макетированные, и я не понимаю, почему.

Подробнее здесь: https://stackoverflow.com/questions/793 ... ested-file
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Javascript»