小编roo*_*mer的帖子

调用 Jest 模拟函数。但模拟的状态没有更新?

我对 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)

unit-testing reactjs jestjs

2
推荐指数
1
解决办法
3410
查看次数

标签 统计

jestjs ×1

reactjs ×1

unit-testing ×1