Reactjs React路由器-渲染功能-React测试库
我是React测试库的新手,在编写React路由器中呈现函数的测试用例时面临一些挑战。 我无法确定Route的渲染函数的代码覆盖率。有人能在这方面指导我吗Reactjs React路由器-渲染功能-React测试库,reactjs,react-router-dom,react-testing-library,Reactjs,React Router Dom,React Testing Library,我是React测试库的新手,在编写React路由器中呈现函数的测试用例时面临一些挑战。 我无法确定Route的渲染函数的代码覆盖率。有人能在这方面指导我吗 <Route path="/employee" render={() => <div><h4>Employee Page</h4></div>} /> Employee Page}/> App.test.js it('should render Empl
<Route path="/employee" render={() => <div><h4>Employee Page</h4></div>} />
Employee Page}/>
App.test.js
it('should render Employee Page', () => {
render(
<MemoryRouter initialEntries={['/employee']}>
<App/>
</MemoryRouter>
);
expect(screen.getByText('Employee Page')).toBeInTheDocument();
});
import {createMemoryHistory} from 'history';
it('should render Employee', () => {
const history = createMemoryHistory(["/", "/employee"])
history.push('/employee');
const component = <Router history={history}>
<NavLink to="/employee">Employee</NavLink>
<App/>
</Router>
render(component);
});
it('应该呈现员工页面',()=>{
渲染(
);
expect(screen.getByText('Employee Page')).toBeInTheDocument();
});
App.js
<Router>
<div>
<ul>
<li><NavLink to="/home">Home</NavLink></li>
<li><NavLink to="/article">Article</NavLink></li>
<li><NavLink to="/employee">Employee</NavLink></li>
</ul>
<Switch>
<Route path="/home" render={() => <div><h4>Home
Page</h4></div>} />
<Route path="/article" render={() => <div><h4>Article
Page</h4></div>} />
<Route path="/employee" render={() => <div><h4>Employee
Page</h4></div>} />
</Switch>
</div>
</Router>
- 家
- 文章
- 雇员
家
第}/>
文章
第}/>
雇员
第}/>
最后我成功完成了React路由器的单元测试,获得了Route渲染功能的代码覆盖率
App.test.js
it('should render Employee Page', () => {
render(
<MemoryRouter initialEntries={['/employee']}>
<App/>
</MemoryRouter>
);
expect(screen.getByText('Employee Page')).toBeInTheDocument();
});
import {createMemoryHistory} from 'history';
it('should render Employee', () => {
const history = createMemoryHistory(["/", "/employee"])
history.push('/employee');
const component = <Router history={history}>
<NavLink to="/employee">Employee</NavLink>
<App/>
</Router>
render(component);
});
从“历史”导入{createMemoryHistory};
它('应该呈现员工',()=>{
const history=createMemoryHistory([“/”,“/employee”])
history.push(“/employee”);
常数分量=
雇员
渲染(组件);
});
您尝试过什么?您当前的测试是什么样子的?我使用React测试库尝试了上面添加的测试用例。我正在使用react route的render函数进行内联渲染。我的测试用例正在获得成功,但无法获得路由中呈现函数的代码覆盖率。能否为应用程序
组件添加完整代码?我已完成单元测试并更新了相应的代码片段。很抱歉我迟了回复。