酶安装不呈现任何东西

Enzyme mount does not render anything

酶安装不呈现组件。还有其他具有上下文的组件,但这是我唯一无法测试的组件。

//LoginForm.js
class LoginForm extends React.Component {
    //...
    render() {
        return (
            <AuthContext.Consumer>
                {(context) => (
                    <>
                        {!context.user && 
                            //stuff
                        }
                        {context.configurationCompleted && 
                        <>
                            //stuff
                        </>
                        }
                    </>
                )}
            </AuthContext.Consumer>);
    }
}
//LoginForm.test.js

describe('LoginForm', ()=>{
    let component;
    beforeAll(()=>{
        component = mount(
            <LoginForm/>, {context: {user: undefined, configurationCompleted: false}}
        );
    });
    test('works', ()=>{
        console.log(component.debug());
    });
});

输出为: <LoginForm />

我只想渲染下面的部分!context.user

我认为使用 options.context 的酶安装存在一些问题(检查您是否使用的是最新版本)。但是,您可以只使用经典的 COntext 提供程序来注入值:

it("displays the result", () => {
    const component = mount(
        <AuthContext.Provider value={{ context: { user: undefined, configurationCompleted: false } }}>
            <LoginForm />
        </AuthContext.Provider>
    );
    expect(component).toMatchSnapshot();
 });