javascript - 测试 React-Router v1.0.0 href

标签 javascript reactjs react-router

目前正在使用 Jest 和 React-Router 来尝试和测试一个元素是否有一个具有预期值的 href。

遵循说明 here

jest.dontMock('../BasicPage')

describe('BasicPage', function() {
  let BasicPage = require('../BasicPage')
  let TestUtils = require('react-addons-test-utils')
  let ReactDOM = require('react-dom')
  let React = require('react')

  it('renders the Login button if not logged in', function() {
    let page = TestUtils.renderIntoDocument(<BasicPage />)
    let button = TestUtils.findRenderedDOMComponentWithTag(page, 'button')
    expect(ReactDOM.findDOMNode(button).textContent).toBe('Login')
  })

  it('renders the Account button if logged in', function() {
    let page = TestUtils.renderIntoDocument(<BasicPage authenticated={true} />)
    let button = TestUtils.findRenderedDOMComponentWithTag(page, 'button')
expect(ReactDOM.findDOMNode(button).getAttribute('href')).toBe('/admin')
  })
})

该元素有一个链接,如:

<Button bsStyle="primary"><Link to="/admin">Login</Link></Button>

当 console.log'in 按钮时,href 不存在且测试返回 null!

有没有人找到解决这个问题的方法?

最佳答案

您需要在 <Router> 下渲染内容例如,如果你想要<Link>实际工作。 <Router><Link> 的上下文中提供历史实例用于生成 href s 并处理点击。

为了方便测试,我们会让你渲染<Link>没有历史实例,但如您所见,它们将不起作用。

关于javascript - 测试 React-Router v1.0.0 href,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33435316/

相关文章:

reactjs - 实现 Redux 后基本 React 测试失败

javascript - 使用渲染时卸载 React-router v4

reactjs - React Navigation 5 - 深度链接不接受给定路径并按预期解析为状态

javascript - 重新路由到传递响应数据的组件

javascript - React router 4 - 使用哈希来路由架构问题

javascript - Rails-React 不适用于 ES6

javascript - 如何嵌入音频

reactjs - 链接内的 React-router 可点击元素

javascript - 仅当外部内容更改时刷新 div

javascript - 引用对象(在数组中)