我的React应用程序使用许多由jest和enzyme测试的许多组件所使用的inbox.getMessages(start, end)
。为了复制上下文的行为,我在函数Context
上创建了一个间谍:
useContext
然后我使用mockImplementation来操纵它们的行为并根据上下文返回我想要的数据:
const contextSpyer = jest.spyOn(React, 'useContext')
这里contextSpyer.mockImplementation((context) => {
switch (context) {
case MenuContext: {
return (
{
activeItem: 'foobar',
pages: ['page1', 'page2', 'page3'],
currentPage: ['page1']
}
)
}
case UserContext: {
return (
{
currentUser: {id: 42, name: 'foo'}
}
)
}
}
})
和MenuContext
是UserContext
的结果。
现在,我需要添加React.createContext( ... )
的{{1}}情况,因为在此组件中使用的库(例如default
)也使用了switch
,而我没有想覆盖其上下文的默认行为。
您知道如何保存其默认值吗?