window.navigator并且它的属性是只读的,这就是为什么
Object.defineProperty需要set
的原因
window.navigator.language。它应该可以多次更改属性值。
问题在于该组件已经在中实例化
beforeEach,
window.navigator.language更改不会影响它。
Object.defineProperty手动使用模拟属性将需要存储原始描述符并也手动还原它。可以使用完成此操作
jest.spyOn。
jest.clearAllMocks()不会帮助手动间谍/模拟,Jest间谍可能不需要。
可能应该是:
let languageGetter;beforeEach(() => { languageGetter = jest.spyOn(window.navigator, 'language', 'get')})it('should do thing 1', () => { languageGetter.mockReturnValue('de') wrapper = shallow(<Component {...props} />) expect(wrapper.state('currentLanguage')).toEqual('de')})...


