最近我升级了 okta-react 库,并已将应用程序转换为使用新的钩子(Hook)。我现在正在更新我的测试。 useOktaAuth()
是 undefined
.我希望能够模拟它,以便我可以测试用户何时登录。
const { authState, authService } = useOktaAuth();
// TypeError: Cannot destructure property `authState` of 'undefined' or 'null'
为了解决这个问题,我尝试通过以下方式模拟钩子(Hook):
jest.mock('@okta/okta-react', () => ({
useOktaAuth: () => {
return {
authState: {},
authService: {}
};
}
}));
那是行不通的。我仍然对如何测试这些组件有任何想法?
谢谢
最佳答案
经过不断的研究和工作,这对我有用。
jest.mock("@okta/okta-react/dist/OktaContext", () => ({
useOktaAuth: () => {
return {
authState: {},
authService: {},
};
},
}));
describe("Login", () => {
test("should ", () => {
const wrapper = shallow(<Login authService={null} />);
expect(wrapper.length).toBe(1);
});
});
注意:我将 authService 参数传递给组件。
关于javascript - 如何测试/模拟 react 钩子(Hook)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60876624/