编程语言
首页 > 编程语言> > javascript-使用React,Enzyme,Jest测试嵌套div中是否存在特定链接

javascript-使用React,Enzyme,Jest测试嵌套div中是否存在特定链接

作者:互联网

我在侧边栏,标题等中渲染了一些链接.我正在编写一些测试以确保它们存在,得到渲染等.一切正常.

我想确保使用正确的位置链接在正确的div中呈现链接.

标头组件示例

    <div className="pull-right" id="navbarsExampleDefault">
      <ul className="navbar-nav mr-auto">
          {props.links.map((link, i) => {
            return (
              <li key={`HEADER_${i}`} className="nav-item hdr">
                <NavLink exact className='nav-link' activeClassName='nav-link active' to={`${link.location}`}>
                  {link.title}
                </NavLink>
              </li>
            )
          })}
      </ul>
    </div>

该对象被传递为迭代的道具:

let headerLinkProp = [
        { title: "Dashboard", location: "/"},
        { title: "Budget", location: "/editBudget"},
        { title: "Virtual Accounts", location: "/viewAccounts"}]

我的最终目标是最终说..nav-item hdr中存在一个链接,其中该链接的标题为X,链接href为Y.

我有一些小片段,例如:

expect(wrapper.find('.sb').children()).toHaveLength(3)

那算.sb类中的孩子人数,但希望能更深入.

解决方法:

您应该尝试这样的事情:

let headerLinkProp = [
        { title: "Dashboard", location: "/"},
        { title: "Budget", location: "/editBudget"},
        { title: "Virtual Accounts", location: "/viewAccounts"}]

expect(wrapper.find('.sb').children()).toHaveLength(3);
wrapper.find('.nav-link').forEach((node, index) => {
  expect(node.text()).to.equal(headerLinkProp[index].title);
  expect(node.prop('to')).to.equal(headerLinkProp[index].location);
});

标签:enzyme,unit-testing,reactjs,jestjs,javascript
来源: https://codeday.me/bug/20191025/1928636.html