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'/>
);
...