Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/unit-testing/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 如何搜索路线渲染道具内的按钮_Reactjs_Unit Testing_React Router_Render_Enzyme - Fatal编程技术网

Reactjs 如何搜索路线渲染道具内的按钮

Reactjs 如何搜索路线渲染道具内的按钮,reactjs,unit-testing,react-router,render,enzyme,Reactjs,Unit Testing,React Router,Render,Enzyme,我是反应和酶的新手,正在编写一个按钮渲染的测试用例。 有人能告诉我如何在路线的渲染道具内搜索按钮吗? 这是我的组件: export default class App extends React.Component { render() { return ( <div className='class1'>

我是反应和酶的新手,正在编写一个按钮渲染的测试用例。 有人能告诉我如何在路线的渲染道具内搜索按钮吗? 这是我的组件:

            export default class App extends React.Component {
                render() {
                    return (
                        <div className='class1'>
                        .....
                            <Route id='Route-Home' render={({history}) => (
                                <Button id='Home-Button' onClick={() => {
                                    history.push(Constants.PATHS.HOME);
                                }}
                                text='Home' variant='emphasis'/>
                            )} />
                        .....
                        </div>
                    );
                }
            }
导出默认类App扩展React.Component{
render(){
返回(
.....
(
{
历史。推送(常量。路径。主);
}}
text='Home'变体='emphasis'/>
)} />
.....
);
}
}
在我的测试用例中,我得到了最接近的结果:

            describe('App', () => {
                let wrapper;
                beforeAll(()=>{
                    wrapper = shallow(<App />);
                }
                it('should render Home Button', () => {
                expect(wrapper.find('#Route-Home').prop('render').length).toBe(1);

                });

            });
description('App',()=>{
让包装纸;
以前(()=>{
包装器=浅();
}
它('应该呈现主页按钮',()=>{
expect(wrapper.find(“#Route Home”).prop('render').length.toBe(1);
});
});

无法找到有关如何测试按钮是否渲染的任何工作解决方案。欢迎提供任何建议!

提取传递给路由的
渲染
道具的函数,并单独测试它。以下是一些示例代码:

export const routeRenderFn = ({history}) => (
  <Button id='Home-Button' onClick={() => {
    history.push(Constants.PATHS.HOME);
  }}
  text='Home' variant='emphasis'/>
);

...

<Route id='Route-Home' render={routeRenderFn} />
export const routernderfn=({history})=>(
{
历史。推送(常量。路径。主);
}}
text='Home'变体='emphasis'/>
);
...