我对 javascript、react 和玩笑很陌生。我想模拟一个将作为上下文值传递的函数。我能够传递模拟函数,并且能够看到模拟函数被触发,但是当我尝试检查模拟以断言结果时。我收到错误,附在下面。
这是我要测试的课程:
class Login extends Component {
constructor(props) {
super(props);
this.state = {
authInProgress: true,
authSuccess: false
};
}
componentDidMount() {
if (this.context.isAuthenticated) {
this.setState({
authInProgress: false,
authSuccess: true
});
} else {
isUserLoggedIn().then((response) => {
this.context.logIn();
this.setState({
authInProgress: false,
authSuccess: true
});
}).catch((err) => {
console.log(err);
});
}
}
render() {
if (this.state.authInProgress) {
return <div>Rendering login</div>;
} else if (this.state.authSuccess) {
return <Redirect to={ROOT}/>;
}
}
}
Login.contextType = Context;
export default Login;
Run Code Online (Sandbox Code Playgroud)
这是我的测试:
it("When user …Run Code Online (Sandbox Code Playgroud)