Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.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 React路由器-渲染功能-React测试库_Reactjs_React Router Dom_React Testing Library - Fatal编程技术网

Reactjs React路由器-渲染功能-React测试库

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

我是React测试库的新手,在编写React路由器中呈现函数的测试用例时面临一些挑战。 我无法确定Route的渲染函数的代码覆盖率。有人能在这方面指导我吗

<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函数进行内联渲染。我的测试用例正在获得成功,但无法获得路由中呈现函数的代码覆盖率。能否为
应用程序
组件添加完整代码?我已完成单元测试并更新了相应的代码片段。很抱歉我迟了回复。