Reactjs 仅当条件为真时才显示按钮的测试
我有一个渲染功能,如下所示:Reactjs 仅当条件为真时才显示按钮的测试,reactjs,typescript,react-native,jestjs,enzyme,Reactjs,Typescript,React Native,Jestjs,Enzyme,我有一个渲染功能,如下所示: private render(): JSX.Element { return ( <div> {this.props.x && this.state.y && <DefaultButton onClick = { this.onDeleteButtonClick } > Delete </DefaultButton>
private render(): JSX.Element {
return (
<div>
{this.props.x && this.state.y &&
<DefaultButton onClick = { this.onDeleteButtonClick } >
Delete
</DefaultButton>
}
</div>
);
}
只有当这两个条件this.ispage enabled
和&this.issubmiter
为真时,才显示submitpFormContainer
我如何为相同的问题编写测试?请让我知道。谢谢 我假设您一般都知道如何编写测试。这里棘手的部分是编写易于测试的类。在第一种情况下,它可能很简单:
it('shows DefaultButton', () => {
const shallowRenderer = new ShallowRenderer();
shallowRenderer.render(<Component
x={true}
/>);
const result = shallowRenderer.getRenderOutput();
expect(result).toMatchSnapshot();
});
it('显示默认按钮',()=>{
const shallewrender=新的shallewrender();
shallewrender.render();
const result=shallwrender.getRenderOutput();
expect(result).toMatchSnapshot();
});
创建两个测试,一次通过x=true
,另一次通过x=false
,因此您可以测试这两种情况。您只需以某种方式将y
-状态设置为true
在你的第二个例子中,标题容器看起来更复杂。如何修改isPageEnabled
和isSubmitter
的值?如果无法从外部进行测试,则无法正确测试。如果可能,使用道具
it('shows DefaultButton', () => {
const shallowRenderer = new ShallowRenderer();
shallowRenderer.render(<Component
x={true}
/>);
const result = shallowRenderer.getRenderOutput();
expect(result).toMatchSnapshot();
});