酶安装不呈现任何东西
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();
});
酶安装不呈现组件。还有其他具有上下文的组件,但这是我唯一无法测试的组件。
//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();
});