问题在于,所有这些都
jest.mock将在编译时提升到实际代码块的顶部,在这种情况下,这就是文件的顶部。此时
VocabularyEntry尚未导入。你既可以把
mock一个
beforeAll在测试或使用块
jest.mock这样的:
import {shallow} from 'enzyme';import React from 'react';import Vocabulary from "../../../src/components/Vocabulary ";import {VocabularyEntry} from '../../../src/model/VocabularyEntry'import vocabularyService from '../../../src/services/vocabularyService'jest.mock('../../../src/services/vocabularyService', () => jest.fn())vocabularyService.mockImplementation(() => ({ vocabulary: [new VocabularyEntry("a", "a1")]}))这将首先使用一个简单的间谍对模块进行模拟,并在所有内容导入后设置模拟的实际实现。



