Scheinfunktioniert in der Testdatei, aber nicht in der getesteten DateiJavaScript

Javascript-Forum
Guest
 Scheinfunktioniert in der Testdatei, aber nicht in der getesteten Datei

Post by Guest »

Ich versuche, ein Projekt von Jest nach Vitest zu migrieren und habe Probleme mit Mocks. Ich kann nicht herausfinden, warum beim Verspotten eines Moduls eines Drittanbieters und beim Verwenden von Scheinimplementierungen/Mock-Rückgabewerten diese zwar in der Testdatei funktionieren, aber nicht in der getesteten Datei (wo ich möchte, dass die Scheinwerte tatsächlich zurückgegeben werden). Dies funktioniert problemlos mit Jest, jedoch nicht mit Vitest. Hier ist ein Teil des Codes, den ich derzeit habe:

Code: Select all

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: 'testEmail@company.com'})

expect(internalService.init).toHaveBeenCalledTimes(1)
expect(internalService.init).toHaveBeenCalledWith(
{
email: 'testEmail@company.com',
unique_id: '1',
},
)
})

und die getestete Datei:

Code: Select all

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,
},
)
}

Wenn console.log innerhalb des Tests ausgeführt wird, gibt der Code die simulierten Werte zurück (

Code: Select all

'1'
und '123') wie erwartet, aber wenn der Code in der getesteten Datei ausgeführt wird, scheint es, als würden die ursprünglichen Implementierungen ausgeführt, nicht die simulierten, und ich verstehe nicht, warum.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post